documentation-guardian
- Repo stars 0
- Author updated Live
- Author repo skills-registry
- Domain
- Documentation
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @tomevault-io · no license declared
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- WSL
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: documentation-guardian
description: Proactively suggests ADRs when architectural changes happen in this Lovelace card repo, and chec…
category: documentation
runtime: no special runtime
---
# documentation-guardian output preview
## PART A: Task fit
- Use case: Proactively suggests ADRs when architectural changes happen in this Lovelace card repo, and checks code changes against existing decisions in docs/adr/. Activate on new chart plugin, new data source, new render mode, new top-level config option, build/quality gate change, bundler or major-dependency bump, module-boundary break, or pattern deviation from an existing ADR. Use when this capability is needed..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Activation triggers (this repo's architecture) / Skip — do not trigger on / Out of scope (deliberately)” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Proactively suggests ADRs when architectural changes happen in this Lovelace card repo, and checks code changes against existing decisions in docs/adr/. Activate on new chart plugin, new data source, new render mode, new top-level config option, build/quality gate change, bundler or major-dependency bump, module-boundary break, or pattern deviation from an existing ADR. Use when this capability is needed.”.
- **02** When the source has headings, the agent prioritizes “Activation triggers (this repo's architecture) / Skip — do not trigger on / Out of scope (deliberately)” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “Activation triggers (this repo's architecture) / Skip — do not trigger on / Out of scope (deliberately)”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: documentation-guardian
description: Proactively suggests ADRs when architectural changes happen in this Lovelace card repo, and chec…
category: documentation
source: tomevault-io/skills-registry
---
# documentation-guardian
## When to use
- Proactively suggests ADRs when architectural changes happen in this Lovelace card repo, and checks code changes agains…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Activation triggers (this repo's architecture) / Skip — do not trigger on / Out of scope (deliberately)” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "documentation-guardian" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Activation triggers (this repo's architecture) / Skip — do not trigger on / Out of scope (deliberately)
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} Documentation Guardian
Keeps docs/adr/ in sync with the code. Two jobs:
- Detect ADR-worthy changes as they happen and propose drafting an ADR.
- Check planned and in-progress changes against existing ADRs before they land.
The ADR conventions referenced here live in docs/adr/README.md. When the two disagree, docs/adr/README.md wins — update this skill to match.
Activation triggers (this repo's architecture)
Activate when you observe any of these in a planned or in-progress change:
- A new chart plugin under
src/chart/plugins/, or a new entry registered insrc/chart/plugins.ts. - A new data source under
src/data-source/, or a new tier added to the sunshine-source resolution chain (existing tiers are governed by an accepted ADR — re-readdocs/adr/to find which). - A new render mode or layout (a fourth top-level mode beside Combination / Station / Forecast), or a new
forecast.stylevariant beyond style1/style2. - A new top-level card-config option that the user can set in their YAML — these become public API and are notoriously hard to remove.
- A build / quality gate change: ESLint rule promoted warn→error, vitest coverage threshold moved, dependency-cruiser rule added or relaxed, new CI workflow under
.github/workflows/, change to theRequired status checksset on master. - A bundler or major-dependency bump: Rollup, vitest, lit, chart.js, playwright, eslint majors. The decision to take a major and the migration shape is ADR-worthy; patch/minor bumps are not.
- A boundary break: a new uplevel
importinsrc/chart/,src/editor/, orsrc/utils/. Either it needs to be removed, or the boundary itself needs an ADR change. - A change to the e2e baseline regeneration flow (the
update-baselines.ymlworkflow, the playwright tolerance, the WSL fallback policy — pinning is governed by an accepted ADR; re-readdocs/adr/before changing the flow). - A release-flow change — the steps listed in
CLAUDE.mdfor cuttingvX.Y.Z. - A pattern deviation from an accepted ADR — code that contradicts an existing decision.
Skip — do not trigger on
- Bug fixes that don't change a contract (no new public option, no new module-boundary, no new dependency).
- Refactors within an existing module that keep the public surface identical.
- Adding test coverage to existing code (including v1.5 #10 work on
teardown-registry.ts). - Style fixes, lint-warning cleanup, type-narrowing inside an already-strict file.
- E2E baseline regenerations done by the
update-baselines.ymlGHA bot. - Single-file documentation edits (typo, link, prose tweak) that do not change a convention.
- Patch/minor dependency bumps via Dependabot.
- Lovelace dashboard / Bubble Card / user-side YAML examples in docs (those describe usage, not internal architecture).
Out of scope (deliberately)
The skill stays narrow. It does not:
- Fire on conversational mentions of "bug" or "idea". Filing a GitHub issue is a deliberate user act, not a documentation event.
- Run
gh issue createor manage labels. - Police uncommitted working-tree state outside
docs/and the ADR check. - Verify cross-links in issue bodies on GitHub.
Documentation locations
When suggesting where information should live, use these targets:
| Target | Purpose |
|---|---|
docs/adr/NNNN-*.md |
Architecture decisions: tech choice, build-gate change, public-API surface, module-boundary, release-flow change |
ARCHITECTURE.md |
Module map, lifecycle, data flow — descriptive, derived from code |
docs/CONFIGURATION.md |
User-facing card config reference (every new option must land here too) |
docs/CONDITIONS.md, docs/SENSORS.md, docs/TROUBLESHOOTING.md |
User reference docs by domain |
docs/STYLE-GUIDE.md |
Documentation conventions themselves |
CHANGELOG.md |
Release-by-release log (every user-visible change is mentioned here) |
CLAUDE.md |
Local-only context (gitignored). Do not propose ADR rationale to live here. |
Gating test — apply before proposing
The activation triggers above are detection signals, not auto-suggestions. After a trigger fires, gate the proposal by the restrictive AND-of-three filter:
- Hard to reverse — the cost of changing the decision later is meaningful.
- Surprising without context — a future reader will look at the code and wonder "why on earth did they do it this way?"
- Result of a real trade-off — there were genuine alternatives and you picked one for specific reasons.
All three must be true. If any one is missing, skip the ADR — the rationale belongs in a commit message, a code comment, the CHANGELOG.md, or simply in the diff itself.
- Easy to reverse → just reverse it later.
- Not surprising → nobody will wonder why.
- No real alternative → "we did the obvious thing" isn't worth recording.
This filter mirrors the one in the user-level grill-with-docs skill, so both stay aligned on what counts as ADR-worthy.
Proactive prompting
When a trigger fires and the AND-of-three gate passes, surface it before implementation, not after:
This change introduces / modifies / adds X. That's a deliberate architectural choice with genuine alternatives and meaningful reversal cost — should I draft an ADR for it before continuing?
Suggested:
docs/adr/NNNN-descriptive-title.md.
If the user agrees, draft the ADR using docs/adr/template.md in the same PR as the code change. If the user defers ("not now, later"), respect that — do not nag in the same session.
For architecture suggestions in general (per CLAUDE.md): list pros/cons, then a recommendation, then act only after OK.
Compliance check
Before implementation
- List
docs/adr/fresh — never assume a snapshot of the in-force set; new ADRs land regularly and a hardcoded list in this skill would silently drift. - Read each accepted ADR whose title or
Decisionsection overlaps the staged paths or the planned change's surface area. Skiptemplate.mdandREADME.md. - Verify the planned change does not contradict any of them.
- If the planned change contradicts an accepted ADR, raise it explicitly:
This approach differs from ADR 000N (
<title>) which decided X. Two options: (a) adjust the implementation to match the ADR, (b) write a superseding ADR. Which one?
After implementation
- Note any significant undocumented decisions made during the change.
- Suggest an ADR for each, naming the file path.
ADR mechanics
Required structure
Mirrors docs/adr/template.md:
# NNNN: Title
**Status:** Proposed | Accepted | Deprecated | Superseded by NNNN
**Date:** YYYY-MM-DD
## Context
## Decision
## Consequences
- Pros / Cons / Tradeoffs
## Related
Numbering
- Sequential four-digit numbers: 0001, 0002, …
- Find the current highest number with
ls docs/adr/. - Never reuse a number, even for deprecated or superseded ADRs.
Superseding
When a new decision overrides an old one:
- The old ADR's status becomes
Superseded by NNNN. - The old ADR file is not deleted — history is preserved.
- The new ADR's status is
Acceptedand itsRelatedsection links back to the superseded one.
Behavioural guidelines
- Lightweight, not bureaucratic. Suggest ADRs only when the change is genuinely a decision, not when the answer is obvious from the code or already documented.
- "Should I draft an ADR?" pattern, not auto-generation. Wait for a yes.
- Respect deferrals. If the user says "later" or "no", drop it.
- Pro/contra first. When recommending an architecture or tool choice, list alternatives, then a recommendation, then wait for OK before implementing.
- Connect the dots. Link new ADRs to related ones; reference the ADR from the relevant code section in
ARCHITECTURE.mdor the corresponding user doc. - English only in any file written to disk. Conversation can stay German.
Source: chriguschneider/weather-station-card — distributed by TomeVault.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review