chore: sync cli-3.12.1 to main (cherry-pick from stranded #131)#133
Merged
Conversation
#130) (#131) Latent bug exposed by #129's TDE activation trigger: `straymark new --doc-type tde` shipped documents with the canonical `status: identified` (per TEMPLATE-TDE.md and DOCUMENTATION-POLICY.md §6), but `straymark validate` rejected them with META-003. The validator's hardcoded VALID_STATUSES was missing the only non-`draft`/non-`accepted` default in the type matrix. Fixed (CLI): - validation.rs:45 — VALID_STATUSES now includes `identified` alongside draft/review/accepted/superseded/deprecated. Flat enum still applies to all 12+ doc types; per-type validation sets deferred to v1 against the same second-adopter gate as the follow-ups CLI. - cli/tests/validate_test.rs — new regression test `test_validate_tde_document_valid()` exercises `status: identified`. TDD red→green verified: test fails on unpatched validator, passes after the fix. Changed (Framework, no separate version bump — ships with fw-4.13.0): - DOCUMENTATION-POLICY.md §3 "Document Statuses" (EN + ES + zh-CN): lifecycle diagram extended to show `identified` as a TDE-only entry state. Reconciles §3 prose with the §6 per-type defaults table that already declared TDE → `identified`. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 tasks
montfort
added a commit
that referenced
this pull request
May 12, 2026
Records the rule "never commit directly to main" (mirroring dist/STRAYMARK.md §5 for adopters), branch/commit conventions, the project's squash-merge default, and the stacked-PR incident from #129/#131/#133 (2026-05-11) — including prevention strategies and a cherry-pick recovery recipe. Also documents when --admin merge is acceptable (procedural sync PRs where content was already reviewed elsewhere) and the tag-time version-match check that release-{cli,framework}.yml enforce. Co-authored-by: Claude Opus 4.7 (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.
Replaces closed #132 (had merge conflicts because GitHub squash-merged #129, breaking SHA continuity with the stacked feature branch).
Why this PR
#131 (closes #130) merged to its stacked base (`feat/tde-activation-trigger`) instead of `main` — known artifact of stacked-PR pattern when the parent PR squash-merges first. The 14-file diff is stranded on the feature branch.
This PR cherry-picks the exact commit (#131's merge commit `e128b28`) onto a fresh branch off main. Cherry-pick was clean — no conflicts because the cherry-picked commit only touches files outside the #129 conflict zone (validator code, regression test, Cargo.toml/Cargo.lock, CLI versioning tables) and §3 prose in DOCUMENTATION-POLICY.md (which #129's squash didn't touch — #129 only changed the doc footer + §6 row).
Verification
```
$ grep '^version' cli/Cargo.toml
version = "3.12.1"
$ cd cli && cargo test --test validate_test test_validate_tde_document_valid
running 1 test
test test_validate_tde_document_valid ... ok
test result: ok. 1 passed; 0 failed; 0 ignored
```
Post-merge
`fw-4.13.0` and `cli-3.12.1` tags can be pushed from `main` HEAD immediately. The release workflows (`release-framework.yml`, `release-cli.yml`) will compile assets:
🤖 Generated with Claude Code