Skip to content

Scope: name expected echoes, make scope-review optional, remove Jira sync - #6

Merged
tobrun merged 5 commits into
mainfrom
scope-echo-lint-mismatch
Oct 6, 2026
Merged

tobrun merged 5 commits into
mainfrom
scope-echo-lint-mismatch

Conversation

@tobrun

@tobrun tobrun commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Summary

Scope runs wrote echoes like D-x (✓ short label) from memory and the first lint-spec.py pass rejected dozens of them, because the text after the check mark must be copied from the chosen line.
The lint error now names what the echo should be, and scope's echo sentence tells authors to lead each chosen line with the label they will echo.
Found by /dev:reflect thread scope-echo-lint-mismatch in two runs across two repositories.
Plan .dev/scope-echo-lint-mismatch | Review 1: CONCERNS

Also in this PR

  • scope hand-off: scope now recommends build as the default next step and mentions scope-review only when the change is large or complex, leaving that choice to the user. build never required a review; only the closing line of scope read that way.
  • Jira sync removed: the opt-in Jira mirror through acli is gone from the dev skills and the factory phase copies - the scope and build sections, the Epic key prefix on ship's branch and PR title, the jira.md reference, its evals and stub fixture, and the docs describing it. build keeps its work-branch rule under its own heading, and .dev/config.json stays for the run journal opt-out.

Evidence

Same spec fixture (chosen line S3 bucket - durable across redeploys, echoed as (✓ cloud storage)), run through the linter at the merge base and on this branch.

On merge base

$ python3 lint-spec.py spec.md
spec.md: no '## Change Plan' section
spec.md: no '### Validation' block in the scope section
spec.md:11: D-storage echo '(✓ cloud storage)' does not match its resolution

3 problem(s); the spec is not final.

On this branch

$ python3 lint-spec.py spec.md
spec.md: no '## Change Plan' section
spec.md: no '### Validation' block in the scope section
spec.md:11: D-storage echo '(✓ cloud storage)' does not match its resolution; expected (✓ <text copied from: s3 bucket>)

3 problem(s); the spec is not final.

Quality

Check Found Fixed Surviving
Static analysis, security, secrets, dead code, duplication (ruff, semgrep, gitleaks, vulture, jscpd) 0 0 0
Dependency rules skipped: no docs/dependencies.md - -
Complexity x coverage (threshold 10) 0 0 0
Flakiness (9 tests x 5 shuffled runs) 0 0 0
Mutation (check_echoes, 10 mutants) 4 survived 3 killed with 4 tests 1 equivalent (resolution[1:] then .strip())

CI parity (impacted, package .): scripts/validate.sh green at full; deferred to CI: none; remote-only: macOS and Linux x Python 3.10 and 3.13 matrix.

Review panel: spec-conformance, correctness, tests, simplify; 0 blockers, 6 concerns (.dev/scope-echo-lint-mismatch/review_1.md).

Open calls

  • Hint text is unquoted and uses a <text copied from: ...> placeholder, unlike the spec's quoted Error format (review concern, minor).
  • Test tightening: pass-case tests check only filtered stdout, the hint assertion is a loose substring, and the change-plan tests bypass the lint() helper.
  • hint is built eagerly then overwritten in two branches (simplify).

🤖 Generated with Claude Code

tobrun and others added 5 commits October 5, 2026 15:06
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
What: four more lint-spec tests for check_echoes.
Why: mutation testing showed the wrong-kind echo and the change-plan link branches unproven.
…changes

scope's closing hand-off named scope-review first, which read as a
required step before build. build never needed a review, so the
hand-off now recommends build and mentions scope-review only when the
change is large or complex, leaving the choice to the user. The README
describes scope-review as optional to match.
The skills carried an opt-in Jira mirror through acli: Epic and Task
creation in scope, transitions in build, and an Epic key prefix on
ship's branch and PR title. The workflow no longer assumes any issue
tracker, so the sections, the jira.md reference, its evals and stub
fixture, and the docs that described it are removed. build keeps its
work-branch rule under its own heading, and .dev/config.json stays for
the run journal opt-out.
@tobrun tobrun changed the title Name the expected echo in scope lint errors Scope: name expected echoes, make scope-review optional, remove Jira sync Oct 6, 2026
@tobrun
tobrun merged commit 9decf73 into main Oct 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant