You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue #1515 re-architects the ADR agent into a thin phase-gated planner backed by an adr-author skill and four applyTo-scoped instruction files. That work depends on lint infrastructure that does not yet exist in hve-core:
A frontmatter schema for ADRs (kebab-case, 4-digit monotonic ID, decision lifecycle states).
A configuration schema for per-project .adr-config.md files.
A linter that enforces the 6-rule supersession contract, lineage integrity, and the 7-kind ASR trigger taxonomy across MADR v4 documents.
This infrastructure is a discrete, independently shippable deliverable that should land first so the planner upgrade (issue #1515) can register the ADR frontmatter schema in schema-mapping.json and rely on the linter for hard-fail validation.
Scope (in)
Linter core: PowerShell module under scripts/linting/AdrConsistency/ containing the parser, rule engine, and CLI entry point (Invoke-AdrConsistencyLint.ps1).
adr-rules.schema.json — meta-schema for the rule registry itself.
Editor schema bindings: register the three schemas in .vscode/settings.json so VS Code provides inline validation while authoring ADRs.
Pester test suite: scripts/tests/linting/Test-AdrConsistency.Tests.ps1 with 16 paired pass/fail fixtures under scripts/tests/linting/fixtures/adr-consistency/ covering each rule.
Problem statement
Issue #1515 re-architects the ADR agent into a thin phase-gated planner backed by an
adr-authorskill and fourapplyTo-scoped instruction files. That work depends on lint infrastructure that does not yet exist inhve-core:.adr-config.mdfiles.This infrastructure is a discrete, independently shippable deliverable that should land first so the planner upgrade (issue #1515) can register the ADR frontmatter schema in
schema-mapping.jsonand rely on the linter for hard-fail validation.Scope (in)
scripts/linting/AdrConsistency/containing the parser, rule engine, and CLI entry point (Invoke-AdrConsistencyLint.ps1).scripts/linting/AdrConsistency/rules.jsondeclaring the 9 consistency rules (kebab-case slug, 4-digit monotonic ID, frontmatter completeness, supersession lineage, ASR trigger taxonomy, decision-state transitions, etc.).scripts/linting/schemas/:adr-frontmatter.schema.json— per-ADR YAML frontmatter contract.adr-config.schema.json— per-project.adr-config.md6-field schema.adr-rules.schema.json— meta-schema for the rule registry itself..vscode/settings.jsonso VS Code provides inline validation while authoring ADRs.scripts/tests/linting/Test-AdrConsistency.Tests.ps1with 16 paired pass/fail fixtures underscripts/tests/linting/fixtures/adr-consistency/covering each rule.lint:adr-consistencyfor opt-in invocation. Do not add it to thelint:allchain in this PR — that wiring is deferred until the ADR Planner upgrade lands and produces the first valid ADRs to lint against (issue feat(agents): upgrade ADR agent to standards-aligned thin planner + adr-author skill #1515).templatesto the recognized skill subdirectory list so ADR template assets land in a stable home.npm run plugin:generateoutputs.Scope (out, deferred)
lint:adr-consistencyintonpm run lint:all(deferred to issue feat(agents): upgrade ADR agent to standards-aligned thin planner + adr-author skill #1515 — ADR Planner upgrade — which produces the first ADRs).adr-authorskill (issue feat(agents): upgrade ADR agent to standards-aligned thin planner + adr-author skill #1515).applyTo-scoped instruction files (issue feat(agents): upgrade ADR agent to standards-aligned thin planner + adr-author skill #1515).Acceptance criteria
Invoke-AdrConsistencyLint.ps1runs cleanly against the pass-fixture set and surfaces structured failures for each fail-fixture.npm run lint:adr-consistencyis wired inpackage.jsonand is not part oflint:all.scripts/tests/linting/Test-AdrConsistency.Tests.ps1pass undernpm run test:ps.adr-frontmatter,adr-config,adr-rules) are valid JSON Schema and registered in.vscode/settings.json.npm run plugin:generateandnpm run plugin:validateexit clean.npm run lint:allexits clean (proves the new linter is correctly excluded from the default chain)..github/instructions/hve-core/commit-message.instructions.md.References
feat/adr-consistency-lint🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.