Repository navigation
docs: feature commits update their requirement; recommend strict requirements check - #459
Merged
Merged
Conversation
…rict requirements check; correct handler-code figure
…-fixes # Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
requirement.*claim (@status,@implementedBy) in the same commit, or says in the commit message why not. The rule is in themetaobjects-authoringskill, themetaobjects-verifyrequirements reference (new "Keeping the ledger current" section) and thealways-on.md.mustachetemplate. Theagent-context-conformanceexpected outputs are regenerated to match.--require-implementers, or its per-port form) once the ledger is clean, to be set in the project's verify script, CI job or pre-push hook. This is indocs/features/requirements.mdand the TypeScript, Python, Java, Kotlin and C# port docs.[Unreleased]entry for the above and corrected the 1.1.0 handler-code figure from "439 lines" to "about 460", measured in one adopter pull request.Validation
Risk Assessment
✅ Low: Docs and agent-context text only. Every fixture copy of the changed templates and skills is updated to match. The change covers all three intent items: the authoring rule, the strict-check recommendation and the changelog figure. The one issue found is an overstated sentence about what the strict switch catches.
Testing
I ran the real
metaCLI in a throwaway repo.meta initwrites the new ledger-currency rule into the always-on AGENTS.md/CLAUDE.md and the authoring skill. With a requirement declared, the refreshed requirement references carry the rule and the 'set the switch once the ledger is clean' guidance.meta verifyon a stale-ledger model exits 0 by default and 1 with--require-implementers, which is the case the docs recommend gating. The gates lane (doc examples, doc-template drift, leak-scan, requirements ledger) and the agent-context conformance test pass. The baseline ts-fast and ts-unit lanes were already green. The fullbun testover server/typescript timed out at the 590s tool limit, which the repo notes say it exceeds, so the broad regression rests on those baseline lanes. The throwaway repo was deleted and the worktree is clean.meta initships the rule that a feature commit updates its requirement in the same commitmeta init --docs-only --refresh-docs--require-implementersexit 1 with WARN_REQUIREMENT_NOTHING_IMPLEMENTSEvidence: meta init and refresh-docs grep output
Evidence: verify default vs strict exit codes
Evidence: gates lane log
Pipeline
Updates from git push no-mistakes
✅ **Intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
agent-context/skills/metaobjects-verify/references/requirements.md:120- The new text says that until the switch is set, "a staleliveclaim is only a warning that nobody reads".--require-implementersraises only WARN_REQUIREMENT_NOTHING_IMPLEMENTS, which fires on a live or partial functional requirement with no @implementedBy anywhere under it. A claim that went stale because a feature shipped without updating it, but whose links still resolve, is not flagged in either mode. The sentence overstates what the switch catches. The adjacent authoring rule ("a commit updates the ledger") is what addresses currency, and the docs already say so. Suggested wording: "a live requirement nothing implements is only a warning".✅ **Test** - passed
✅ No issues found.
meta initships the rule that a feature commit updates its requirement in the same commitmeta init --docs-only --refresh-docs--require-implementersexit 1 with WARN_REQUIREMENT_NOTHING_IMPLEMENTSscripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchainsmeta init --server typescript --client reactin a throwaway repo, then grep of .metaobjects/AGENTS.md, CLAUDE.md and the authoring SKILL.md for the new rulemeta init --docs-only --refresh-docswith a requirement.* model declared, then grep of both references/requirements.md files for the rule and the strict-check recommendationmeta verifyvsmeta verify --require-implementerson a disposable model with a live requirement that has no implementer (exit 0 vs exit 1)grep of the repo for the old '439 lines' figurescripts/ci-local.sh --only gates --strict-toolchainsbun test test/agent-context-conformance.test.tsin packages/sdkbaselinescripts/ci-local.sh --only ts-fast --only ts-unit --strict-toolchains(already green)bun testover the full server/typescript suite (hit the 590s timeout)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.