fix(baton): inherit task declarations from explicit Charter origins (#427) - #430
Merged
Merged
Conversation
…427) The ratified schema requires tasks to inherit their parent's work declaration. Baton 0.2.1 left every task undeclared, including an unambiguous synthetic spec. Estoa reported this gap while joining Track C in Discussion #426. Resolve originating_spec against the sibling spec.md within the project. Read work_verb and design_provenance only when exactly one Charter is linked. Preserve undeclared for multiple parents, missing specs or malformed inventory. Do not infer ownership from titles, status or filename order. Do not add a per-task slot or copy the Charter effort estimate onto every task. The existing classifier still handles invalid or absent declared values. Nine integration tests cover declarations, provenance and conservative boundaries. CLI coverage checks read-only behavior and the required dry-run flag. The original reproduction had three failures; the final suite passes 93 tests. Clippy with denied warnings and the new test's rustfmt check pass. Update the prototype status and align the batch kit wording with ratification. Batch harvesting remains pending under #428; risk policy remains unchanged. No version bump, release, model dispatch or framework installation is included. StrayMark document validation passes with pre-existing warnings. Record the parent-resolution tradeoff in AIDEC-2026-09-13-001. AILOG: AILOG-2026-09-13-001; documentary review remains pending.
…iew) Maintainer review amendments on top of the adopter's fix for #427: - A task inherits when every Charter whose originating_spec resolves to its sibling spec.md declares the same work_verb/design_provenance. "Exactly one parent" unclassified a spec's tasks retroactively as soon as it gained a second Charter (the charter-chain pattern: Sentinel's specs 002-005 carry 2-8 Charters each), and uniqueness never proved task ownership anyway. - Candidate parents are read from raw frontmatter, so a Charter the typed parser rejects still counts as a parent instead of disabling inheritance project-wide. Only unreadable frontmatter does, and classify/route now name the blocking Charters on stderr. - Test harness Drop no longer unwraps. AIDEC-2026-09-13-001 amended and accepted; AILOG-2026-09-17-001. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
Maintainer reviewThe fix is correct: canonical resolution, the out-of-project symlink guard, no effort inheritance, Two changes pushed in 857ffc5 on top of the original commit:
This needs a separate fix: Baton's inventory walks nested git worktrees ( |
This was referenced Sep 18, 2026
Merged
Merged
montfort
added a commit
that referenced
this pull request
Sep 18, 2026
Release the Track C fixes that landed after baton-0.2.0: task inheritance (#430), batch inheritance (#437) and inventory hygiene (#435). 0.3.0 rather than 0.2.1: the adopter already measured a from-source "0.2.1" without them, so reusing that number would blur its telemetry. The Track C kit now asks for baton >= 0.3.0 (and CLI >= 3.49 to declare follow-ups). Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Closes #427. Estoa's adoption report reproduced a task under a declared
implement/newCharter remainingundeclared/frontieron Baton 0.2.1. It now inherits the declaration when the explicitoriginating_specCharters resolving to its sibling spec all declare the same thing, producingimplementer/economicunder the unchanged default policy.Parents must resolve inside the project and agree on
work_verb/design_provenance. Missing or disagreeing parents, and unreadable Charter frontmatter, remain conservative (the latter is now named on stderr). Tasks gain no declaration slot and do not inherit the whole Charter's effort estimate. This avoids guessing from titles or picking the first/newest Charter. The decision is recorded in.straymark/07-ai-audit/decisions/AIDEC-2026-09-13-001-baton-task-parent.md.Validation
cargo test -p straymark-baton --locked --offline: 93 passed, no failures or ignored tests (84 existing + 9 new). Binary/doc zero-test harnesses are excluded from this count.--dry-run.cargo clippy -p straymark-baton --all-targets --locked --offline -- -D warningspasses; rustfmt check on the new test file andgit diff --checkpass.straymark validatepasses with existing warnings. Full Charter schema validation is not claimed for this clean checkout: its ignored, generated framework tree is absent. No additional framework copy was installed.Scope and bookkeeping
The ratification's prototype-status note documents partial task inheritance. The Track C kit now points batches to the ratified ledger slot, while explicitly retaining batch harvesting as pending (#428). Multi-Charter task ownership, direct spec declarations and follow-up/batch inheritance need separate work. Risk escalation and model execution are unchanged; no calibration, real cost savings or human documentary acceptance is claimed.
No version bump or release. Governed record:
.straymark/07-ai-audit/agent-logs/AILOG-2026-09-13-001-baton-task-inheritance.md(review pending). The new integration tests and this PR contain only synthetic examples; no private Estoa source or unit titles are published.Maintainer review amendments (857ffc5)
undeclared.classify/routesay which Charter did.AIDEC-2026-09-13-001amended and accepted; newAILOG-2026-09-17-001.cargo test -p straymark-baton --locked: 97 passed (13 intask_inheritance.rs); clippy-D warningsclean.