diff --git a/.claude/agents/truth-claim-verifier.md b/.claude/agents/truth-claim-verifier.md index c9db522..03280f0 100644 --- a/.claude/agents/truth-claim-verifier.md +++ b/.claude/agents/truth-claim-verifier.md @@ -4,7 +4,7 @@ description: Read-only Truthmark claim verifier for checking canonical truth aga tools: Read, Grep, Glob, LS --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: use the truth-claim-verifier subagent. diff --git a/.claude/agents/truth-doc-reviewer.md b/.claude/agents/truth-doc-reviewer.md index efee480..e2e158b 100644 --- a/.claude/agents/truth-doc-reviewer.md +++ b/.claude/agents/truth-doc-reviewer.md @@ -4,7 +4,7 @@ description: Read-only Truthmark doc reviewer for shape, decision, rationale, an tools: Read, Grep, Glob, LS --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: use the truth-doc-reviewer subagent. diff --git a/.claude/agents/truth-doc-writer.md b/.claude/agents/truth-doc-writer.md index 6ae42b5..853efb9 100644 --- a/.claude/agents/truth-doc-writer.md +++ b/.claude/agents/truth-doc-writer.md @@ -4,7 +4,7 @@ description: Write-capable Truthmark doc worker for one parent-leased truth-docu tools: Read, Grep, Glob, LS, Edit, MultiEdit --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: use the truth-doc-writer subagent with an explicit parent write lease. diff --git a/.claude/agents/truth-route-auditor.md b/.claude/agents/truth-route-auditor.md index 7794209..8b86603 100644 --- a/.claude/agents/truth-route-auditor.md +++ b/.claude/agents/truth-route-auditor.md @@ -4,7 +4,7 @@ description: Read-only Truthmark route auditor for bounded routing and ownership tools: Read, Grep, Glob, LS --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: use the truth-route-auditor subagent. diff --git a/.claude/skills/truthmark-check/SKILL.md b/.claude/skills/truthmark-check/SKILL.md index a81e78f..e330fd0 100644 --- a/.claude/skills/truthmark-check/SKILL.md +++ b/.claude/skills/truthmark-check/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.claude/skills/truthmark-check/support/procedure.md b/.claude/skills/truthmark-check/support/procedure.md index 33b7663..72baa9b 100644 --- a/.claude/skills/truthmark-check/support/procedure.md +++ b/.claude/skills/truthmark-check/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Check Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Check diff --git a/.claude/skills/truthmark-check/support/report-template.md b/.claude/skills/truthmark-check/support/report-template.md index e98269e..2ce828e 100644 --- a/.claude/skills/truthmark-check/support/report-template.md +++ b/.claude/skills/truthmark-check/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Check Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.claude/skills/truthmark-check/support/subagents-and-leases.md b/.claude/skills/truthmark-check/support/subagents-and-leases.md index 1439a59..141bb9a 100644 --- a/.claude/skills/truthmark-check/support/subagents-and-leases.md +++ b/.claude/skills/truthmark-check/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Check Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Claude Code subagent mode: - use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out diff --git a/.claude/skills/truthmark-document/SKILL.md b/.claude/skills/truthmark-document/SKILL.md index 751caa5..6e2469f 100644 --- a/.claude/skills/truthmark-document/SKILL.md +++ b/.claude/skills/truthmark-document/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.claude/skills/truthmark-document/helper-manifest.yml b/.claude/skills/truthmark-document/helper-manifest.yml index dc05fe5..2446476 100644 --- a/.claude/skills/truthmark-document/helper-manifest.yml +++ b/.claude/skills/truthmark-document/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-document-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: manually validate support/report-template.md required sections and structured Evidence checked entries validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.claude/skills/truthmark-document/support/helper-policy.md b/.claude/skills/truthmark-document/support/helper-policy.md index 53b72b7..e545d84 100644 --- a/.claude/skills/truthmark-document/support/helper-policy.md +++ b/.claude/skills/truthmark-document/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-document-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-document-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.claude/skills/truthmark-document/support/procedure.md b/.claude/skills/truthmark-document/support/procedure.md index 44d8eb3..a7a9c31 100644 --- a/.claude/skills/truthmark-document/support/procedure.md +++ b/.claude/skills/truthmark-document/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Document Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Document diff --git a/.claude/skills/truthmark-document/support/report-template.md b/.claude/skills/truthmark-document/support/report-template.md index 22741ff..39c8efc 100644 --- a/.claude/skills/truthmark-document/support/report-template.md +++ b/.claude/skills/truthmark-document/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Document Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.claude/skills/truthmark-document/support/subagents-and-leases.md b/.claude/skills/truthmark-document/support/subagents-and-leases.md index c0960d9..cb799ca 100644 --- a/.claude/skills/truthmark-document/support/subagents-and-leases.md +++ b/.claude/skills/truthmark-document/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Document Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Claude Code subagent mode: - use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out diff --git a/.claude/skills/truthmark-preview/SKILL.md b/.claude/skills/truthmark-preview/SKILL.md index 05e0598..c9acc27 100644 --- a/.claude/skills/truthmark-preview/SKILL.md +++ b/.claude/skills/truthmark-preview/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Preview diff --git a/.claude/skills/truthmark-preview/support/procedure.md b/.claude/skills/truthmark-preview/support/procedure.md index d419bf2..2a3f60a 100644 --- a/.claude/skills/truthmark-preview/support/procedure.md +++ b/.claude/skills/truthmark-preview/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Preview Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.claude/skills/truthmark-preview/support/report-template.md b/.claude/skills/truthmark-preview/support/report-template.md index 72cf72b..2e63308 100644 --- a/.claude/skills/truthmark-preview/support/report-template.md +++ b/.claude/skills/truthmark-preview/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Preview Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.claude/skills/truthmark-preview/support/subagents-and-leases.md b/.claude/skills/truthmark-preview/support/subagents-and-leases.md index ccf877a..836d9c9 100644 --- a/.claude/skills/truthmark-preview/support/subagents-and-leases.md +++ b/.claude/skills/truthmark-preview/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Preview Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Claude Code subagent mode: - use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out diff --git a/.claude/skills/truthmark-realize/SKILL.md b/.claude/skills/truthmark-realize/SKILL.md index c91e02d..afbe84c 100644 --- a/.claude/skills/truthmark-realize/SKILL.md +++ b/.claude/skills/truthmark-realize/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.claude/skills/truthmark-realize/support/procedure.md b/.claude/skills/truthmark-realize/support/procedure.md index aa9883b..2deeaff 100644 --- a/.claude/skills/truthmark-realize/support/procedure.md +++ b/.claude/skills/truthmark-realize/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Realize Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Realize diff --git a/.claude/skills/truthmark-realize/support/report-template.md b/.claude/skills/truthmark-realize/support/report-template.md index e49dde5..6e887cc 100644 --- a/.claude/skills/truthmark-realize/support/report-template.md +++ b/.claude/skills/truthmark-realize/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Realize Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.claude/skills/truthmark-structure/SKILL.md b/.claude/skills/truthmark-structure/SKILL.md index 67f522b..c250fc2 100644 --- a/.claude/skills/truthmark-structure/SKILL.md +++ b/.claude/skills/truthmark-structure/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Structure diff --git a/.claude/skills/truthmark-structure/support/procedure.md b/.claude/skills/truthmark-structure/support/procedure.md index 9104b33..a780a95 100644 --- a/.claude/skills/truthmark-structure/support/procedure.md +++ b/.claude/skills/truthmark-structure/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Structure Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill to design or repair Truthmark area structure. Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure. diff --git a/.claude/skills/truthmark-structure/support/report-template.md b/.claude/skills/truthmark-structure/support/report-template.md index c104da3..11efef7 100644 --- a/.claude/skills/truthmark-structure/support/report-template.md +++ b/.claude/skills/truthmark-structure/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Structure Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.claude/skills/truthmark-structure/support/subagents-and-leases.md b/.claude/skills/truthmark-structure/support/subagents-and-leases.md index 2e07107..782ee2c 100644 --- a/.claude/skills/truthmark-structure/support/subagents-and-leases.md +++ b/.claude/skills/truthmark-structure/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Structure Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Claude Code subagent mode: - use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out diff --git a/.claude/skills/truthmark-sync/SKILL.md b/.claude/skills/truthmark-sync/SKILL.md index 651ffc3..94278d7 100644 --- a/.claude/skills/truthmark-sync/SKILL.md +++ b/.claude/skills/truthmark-sync/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Sync diff --git a/.claude/skills/truthmark-sync/helper-manifest.yml b/.claude/skills/truthmark-sync/helper-manifest.yml index ce58751..669b903 100644 --- a/.claude/skills/truthmark-sync/helper-manifest.yml +++ b/.claude/skills/truthmark-sync/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-sync-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: "manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked" validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.claude/skills/truthmark-sync/support/helper-policy.md b/.claude/skills/truthmark-sync/support/helper-policy.md index c3d00c7..78e8645 100644 --- a/.claude/skills/truthmark-sync/support/helper-policy.md +++ b/.claude/skills/truthmark-sync/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-sync-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-sync-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.claude/skills/truthmark-sync/support/procedure.md b/.claude/skills/truthmark-sync/support/procedure.md index a80e050..8eadc6f 100644 --- a/.claude/skills/truthmark-sync/support/procedure.md +++ b/.claude/skills/truthmark-sync/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Sync Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync. diff --git a/.claude/skills/truthmark-sync/support/report-template.md b/.claude/skills/truthmark-sync/support/report-template.md index 9bce186..4cca036 100644 --- a/.claude/skills/truthmark-sync/support/report-template.md +++ b/.claude/skills/truthmark-sync/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Sync Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.claude/skills/truthmark-sync/support/subagents-and-leases.md b/.claude/skills/truthmark-sync/support/subagents-and-leases.md index 14b807f..682c265 100644 --- a/.claude/skills/truthmark-sync/support/subagents-and-leases.md +++ b/.claude/skills/truthmark-sync/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Sync Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Claude Code subagent mode: - use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out diff --git a/.codex/agents/truth-claim-verifier.toml b/.codex/agents/truth-claim-verifier.toml index e52bcf2..4bcc18b 100644 --- a/.codex/agents/truth-claim-verifier.toml +++ b/.codex/agents/truth-claim-verifier.toml @@ -1,4 +1,4 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. name = "truth_claim_verifier" description = "Read-only Truthmark claim verifier for checking canonical truth against checkout evidence." sandbox_mode = "read-only" diff --git a/.codex/agents/truth-doc-reviewer.toml b/.codex/agents/truth-doc-reviewer.toml index 03ee31d..72adbcb 100644 --- a/.codex/agents/truth-doc-reviewer.toml +++ b/.codex/agents/truth-doc-reviewer.toml @@ -1,4 +1,4 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. name = "truth_doc_reviewer" description = "Read-only Truthmark doc reviewer for shape, decision, rationale, and evidence hygiene." sandbox_mode = "read-only" diff --git a/.codex/agents/truth-doc-writer.toml b/.codex/agents/truth-doc-writer.toml index 06af27e..41e90fd 100644 --- a/.codex/agents/truth-doc-writer.toml +++ b/.codex/agents/truth-doc-writer.toml @@ -1,4 +1,4 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. name = "truth_doc_writer" description = "Write-capable Truthmark doc worker for one parent-leased truth-document shard." sandbox_mode = "workspace-write" diff --git a/.codex/agents/truth-route-auditor.toml b/.codex/agents/truth-route-auditor.toml index ba1b766..c153627 100644 --- a/.codex/agents/truth-route-auditor.toml +++ b/.codex/agents/truth-route-auditor.toml @@ -1,4 +1,4 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. name = "truth_route_auditor" description = "Read-only Truthmark route auditor for bounded routing and ownership verification." sandbox_mode = "read-only" diff --git a/.codex/skills/truthmark-check/SKILL.md b/.codex/skills/truthmark-check/SKILL.md index a81e78f..e330fd0 100644 --- a/.codex/skills/truthmark-check/SKILL.md +++ b/.codex/skills/truthmark-check/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.codex/skills/truthmark-check/agents/openai.yaml b/.codex/skills/truthmark-check/agents/openai.yaml index 8a350a7..809b65f 100644 --- a/.codex/skills/truthmark-check/agents/openai.yaml +++ b/.codex/skills/truthmark-check/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: false truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-check/support/procedure.md b/.codex/skills/truthmark-check/support/procedure.md index 33b7663..72baa9b 100644 --- a/.codex/skills/truthmark-check/support/procedure.md +++ b/.codex/skills/truthmark-check/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Check Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Check diff --git a/.codex/skills/truthmark-check/support/report-template.md b/.codex/skills/truthmark-check/support/report-template.md index e98269e..2ce828e 100644 --- a/.codex/skills/truthmark-check/support/report-template.md +++ b/.codex/skills/truthmark-check/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Check Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.codex/skills/truthmark-check/support/subagents-and-leases.md b/.codex/skills/truthmark-check/support/subagents-and-leases.md index 0f1a0a2..3c8b634 100644 --- a/.codex/skills/truthmark-check/support/subagents-and-leases.md +++ b/.codex/skills/truthmark-check/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Check Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Codex subagent mode: - use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out diff --git a/.codex/skills/truthmark-document/SKILL.md b/.codex/skills/truthmark-document/SKILL.md index 751caa5..6e2469f 100644 --- a/.codex/skills/truthmark-document/SKILL.md +++ b/.codex/skills/truthmark-document/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.codex/skills/truthmark-document/agents/openai.yaml b/.codex/skills/truthmark-document/agents/openai.yaml index 8f286c1..12b9f89 100644 --- a/.codex/skills/truthmark-document/agents/openai.yaml +++ b/.codex/skills/truthmark-document/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: false truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-document/helper-manifest.yml b/.codex/skills/truthmark-document/helper-manifest.yml index dc05fe5..2446476 100644 --- a/.codex/skills/truthmark-document/helper-manifest.yml +++ b/.codex/skills/truthmark-document/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-document-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: manually validate support/report-template.md required sections and structured Evidence checked entries validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.codex/skills/truthmark-document/support/helper-policy.md b/.codex/skills/truthmark-document/support/helper-policy.md index 53b72b7..e545d84 100644 --- a/.codex/skills/truthmark-document/support/helper-policy.md +++ b/.codex/skills/truthmark-document/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-document-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-document-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.codex/skills/truthmark-document/support/procedure.md b/.codex/skills/truthmark-document/support/procedure.md index 44d8eb3..a7a9c31 100644 --- a/.codex/skills/truthmark-document/support/procedure.md +++ b/.codex/skills/truthmark-document/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Document Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Document diff --git a/.codex/skills/truthmark-document/support/report-template.md b/.codex/skills/truthmark-document/support/report-template.md index 22741ff..39c8efc 100644 --- a/.codex/skills/truthmark-document/support/report-template.md +++ b/.codex/skills/truthmark-document/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Document Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.codex/skills/truthmark-document/support/subagents-and-leases.md b/.codex/skills/truthmark-document/support/subagents-and-leases.md index 72ce420..b91d76b 100644 --- a/.codex/skills/truthmark-document/support/subagents-and-leases.md +++ b/.codex/skills/truthmark-document/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Document Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Codex subagent mode: - use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out diff --git a/.codex/skills/truthmark-preview/SKILL.md b/.codex/skills/truthmark-preview/SKILL.md index 05e0598..c9acc27 100644 --- a/.codex/skills/truthmark-preview/SKILL.md +++ b/.codex/skills/truthmark-preview/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Preview diff --git a/.codex/skills/truthmark-preview/agents/openai.yaml b/.codex/skills/truthmark-preview/agents/openai.yaml index fadb6af..b3b0b0f 100644 --- a/.codex/skills/truthmark-preview/agents/openai.yaml +++ b/.codex/skills/truthmark-preview/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: false truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-preview/support/procedure.md b/.codex/skills/truthmark-preview/support/procedure.md index d419bf2..2a3f60a 100644 --- a/.codex/skills/truthmark-preview/support/procedure.md +++ b/.codex/skills/truthmark-preview/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Preview Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.codex/skills/truthmark-preview/support/report-template.md b/.codex/skills/truthmark-preview/support/report-template.md index 72cf72b..2e63308 100644 --- a/.codex/skills/truthmark-preview/support/report-template.md +++ b/.codex/skills/truthmark-preview/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Preview Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.codex/skills/truthmark-preview/support/subagents-and-leases.md b/.codex/skills/truthmark-preview/support/subagents-and-leases.md index edee679..900e28f 100644 --- a/.codex/skills/truthmark-preview/support/subagents-and-leases.md +++ b/.codex/skills/truthmark-preview/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Preview Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Codex subagent mode: - use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out diff --git a/.codex/skills/truthmark-realize/SKILL.md b/.codex/skills/truthmark-realize/SKILL.md index c91e02d..afbe84c 100644 --- a/.codex/skills/truthmark-realize/SKILL.md +++ b/.codex/skills/truthmark-realize/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.codex/skills/truthmark-realize/agents/openai.yaml b/.codex/skills/truthmark-realize/agents/openai.yaml index e06f4ed..8ce7276 100644 --- a/.codex/skills/truthmark-realize/agents/openai.yaml +++ b/.codex/skills/truthmark-realize/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: false truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-realize/support/procedure.md b/.codex/skills/truthmark-realize/support/procedure.md index aa9883b..2deeaff 100644 --- a/.codex/skills/truthmark-realize/support/procedure.md +++ b/.codex/skills/truthmark-realize/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Realize Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Realize diff --git a/.codex/skills/truthmark-realize/support/report-template.md b/.codex/skills/truthmark-realize/support/report-template.md index e49dde5..6e887cc 100644 --- a/.codex/skills/truthmark-realize/support/report-template.md +++ b/.codex/skills/truthmark-realize/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Realize Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.codex/skills/truthmark-structure/SKILL.md b/.codex/skills/truthmark-structure/SKILL.md index 67f522b..c250fc2 100644 --- a/.codex/skills/truthmark-structure/SKILL.md +++ b/.codex/skills/truthmark-structure/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Structure diff --git a/.codex/skills/truthmark-structure/agents/openai.yaml b/.codex/skills/truthmark-structure/agents/openai.yaml index ec6a11b..e1e73cc 100644 --- a/.codex/skills/truthmark-structure/agents/openai.yaml +++ b/.codex/skills/truthmark-structure/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: false truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-structure/support/procedure.md b/.codex/skills/truthmark-structure/support/procedure.md index 9104b33..a780a95 100644 --- a/.codex/skills/truthmark-structure/support/procedure.md +++ b/.codex/skills/truthmark-structure/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Structure Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill to design or repair Truthmark area structure. Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure. diff --git a/.codex/skills/truthmark-structure/support/report-template.md b/.codex/skills/truthmark-structure/support/report-template.md index c104da3..11efef7 100644 --- a/.codex/skills/truthmark-structure/support/report-template.md +++ b/.codex/skills/truthmark-structure/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Structure Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.codex/skills/truthmark-structure/support/subagents-and-leases.md b/.codex/skills/truthmark-structure/support/subagents-and-leases.md index 11d2d5e..4d177c6 100644 --- a/.codex/skills/truthmark-structure/support/subagents-and-leases.md +++ b/.codex/skills/truthmark-structure/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Structure Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Codex subagent mode: - use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out diff --git a/.codex/skills/truthmark-sync/SKILL.md b/.codex/skills/truthmark-sync/SKILL.md index 651ffc3..94278d7 100644 --- a/.codex/skills/truthmark-sync/SKILL.md +++ b/.codex/skills/truthmark-sync/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Sync diff --git a/.codex/skills/truthmark-sync/agents/openai.yaml b/.codex/skills/truthmark-sync/agents/openai.yaml index 9e9e93c..c335b08 100644 --- a/.codex/skills/truthmark-sync/agents/openai.yaml +++ b/.codex/skills/truthmark-sync/agents/openai.yaml @@ -7,5 +7,5 @@ policy: allow_implicit_invocation: true truthmark: - version: "1.6.0" + version: "1.6.1" refresh_command: "truthmark init" diff --git a/.codex/skills/truthmark-sync/helper-manifest.yml b/.codex/skills/truthmark-sync/helper-manifest.yml index ce58751..669b903 100644 --- a/.codex/skills/truthmark-sync/helper-manifest.yml +++ b/.codex/skills/truthmark-sync/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-sync-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: "manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked" validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.codex/skills/truthmark-sync/support/helper-policy.md b/.codex/skills/truthmark-sync/support/helper-policy.md index c3d00c7..78e8645 100644 --- a/.codex/skills/truthmark-sync/support/helper-policy.md +++ b/.codex/skills/truthmark-sync/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-sync-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-sync-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.codex/skills/truthmark-sync/support/procedure.md b/.codex/skills/truthmark-sync/support/procedure.md index a80e050..8eadc6f 100644 --- a/.codex/skills/truthmark-sync/support/procedure.md +++ b/.codex/skills/truthmark-sync/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Sync Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync. diff --git a/.codex/skills/truthmark-sync/support/report-template.md b/.codex/skills/truthmark-sync/support/report-template.md index 9bce186..4cca036 100644 --- a/.codex/skills/truthmark-sync/support/report-template.md +++ b/.codex/skills/truthmark-sync/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Sync Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.codex/skills/truthmark-sync/support/subagents-and-leases.md b/.codex/skills/truthmark-sync/support/subagents-and-leases.md index 5730250..275f158 100644 --- a/.codex/skills/truthmark-sync/support/subagents-and-leases.md +++ b/.codex/skills/truthmark-sync/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Sync Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Codex subagent mode: - use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out diff --git a/.gemini/agents/truth-claim-verifier.md b/.gemini/agents/truth-claim-verifier.md index 9f06dea..41a2e1e 100644 --- a/.gemini/agents/truth-claim-verifier.md +++ b/.gemini/agents/truth-claim-verifier.md @@ -5,7 +5,7 @@ kind: local tools: [read_file, grep_search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-claim-verifier diff --git a/.gemini/agents/truth-doc-reviewer.md b/.gemini/agents/truth-doc-reviewer.md index f696479..e9f5361 100644 --- a/.gemini/agents/truth-doc-reviewer.md +++ b/.gemini/agents/truth-doc-reviewer.md @@ -5,7 +5,7 @@ kind: local tools: [read_file, grep_search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-doc-reviewer diff --git a/.gemini/agents/truth-doc-writer.md b/.gemini/agents/truth-doc-writer.md index d595539..7d03255 100644 --- a/.gemini/agents/truth-doc-writer.md +++ b/.gemini/agents/truth-doc-writer.md @@ -5,7 +5,7 @@ kind: local tools: [read_file, grep_search, write_file] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-doc-writer with an explicit parent write lease. diff --git a/.gemini/agents/truth-route-auditor.md b/.gemini/agents/truth-route-auditor.md index 9a653f6..4e1e341 100644 --- a/.gemini/agents/truth-route-auditor.md +++ b/.gemini/agents/truth-route-auditor.md @@ -5,7 +5,7 @@ kind: local tools: [read_file, grep_search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-route-auditor diff --git a/.gemini/commands/truthmark/check.toml b/.gemini/commands/truthmark/check.toml index 64adc0d..2f44c53 100644 --- a/.gemini/commands/truthmark/check.toml +++ b/.gemini/commands/truthmark/check.toml @@ -5,7 +5,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.gemini/commands/truthmark/document.toml b/.gemini/commands/truthmark/document.toml index dc85a2d..bcd747e 100644 --- a/.gemini/commands/truthmark/document.toml +++ b/.gemini/commands/truthmark/document.toml @@ -5,7 +5,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.gemini/commands/truthmark/preview.toml b/.gemini/commands/truthmark/preview.toml index 9938294..8e3133f 100644 --- a/.gemini/commands/truthmark/preview.toml +++ b/.gemini/commands/truthmark/preview.toml @@ -5,7 +5,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.gemini/commands/truthmark/realize.toml b/.gemini/commands/truthmark/realize.toml index f898d03..9be5eb0 100644 --- a/.gemini/commands/truthmark/realize.toml +++ b/.gemini/commands/truthmark/realize.toml @@ -5,7 +5,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.gemini/commands/truthmark/structure.toml b/.gemini/commands/truthmark/structure.toml index 4ab44fc..f02cad7 100644 --- a/.gemini/commands/truthmark/structure.toml +++ b/.gemini/commands/truthmark/structure.toml @@ -5,7 +5,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill to design or repair Truthmark area structure. diff --git a/.gemini/commands/truthmark/sync.toml b/.gemini/commands/truthmark/sync.toml index ac93125..9fca16f 100644 --- a/.gemini/commands/truthmark/sync.toml +++ b/.gemini/commands/truthmark/sync.toml @@ -5,7 +5,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. diff --git a/.gemini/skills/truthmark-check/SKILL.md b/.gemini/skills/truthmark-check/SKILL.md index b9749f5..478cca2 100644 --- a/.gemini/skills/truthmark-check/SKILL.md +++ b/.gemini/skills/truthmark-check/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.gemini/skills/truthmark-check/support/procedure.md b/.gemini/skills/truthmark-check/support/procedure.md index 33b7663..72baa9b 100644 --- a/.gemini/skills/truthmark-check/support/procedure.md +++ b/.gemini/skills/truthmark-check/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Check Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Check diff --git a/.gemini/skills/truthmark-check/support/report-template.md b/.gemini/skills/truthmark-check/support/report-template.md index e98269e..2ce828e 100644 --- a/.gemini/skills/truthmark-check/support/report-template.md +++ b/.gemini/skills/truthmark-check/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Check Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.gemini/skills/truthmark-check/support/subagents-and-leases.md b/.gemini/skills/truthmark-check/support/subagents-and-leases.md index 3a13df5..1935d53 100644 --- a/.gemini/skills/truthmark-check/support/subagents-and-leases.md +++ b/.gemini/skills/truthmark-check/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Check Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Gemini CLI subagent mode: - use automatically when this workflow runs in Gemini CLI and the parent agent chooses bounded project subagent fan-out diff --git a/.gemini/skills/truthmark-document/SKILL.md b/.gemini/skills/truthmark-document/SKILL.md index adfe24c..006d716 100644 --- a/.gemini/skills/truthmark-document/SKILL.md +++ b/.gemini/skills/truthmark-document/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.gemini/skills/truthmark-document/helper-manifest.yml b/.gemini/skills/truthmark-document/helper-manifest.yml index dc05fe5..2446476 100644 --- a/.gemini/skills/truthmark-document/helper-manifest.yml +++ b/.gemini/skills/truthmark-document/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-document-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: manually validate support/report-template.md required sections and structured Evidence checked entries validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.gemini/skills/truthmark-document/support/helper-policy.md b/.gemini/skills/truthmark-document/support/helper-policy.md index 53b72b7..e545d84 100644 --- a/.gemini/skills/truthmark-document/support/helper-policy.md +++ b/.gemini/skills/truthmark-document/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-document-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-document-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.gemini/skills/truthmark-document/support/procedure.md b/.gemini/skills/truthmark-document/support/procedure.md index 44d8eb3..a7a9c31 100644 --- a/.gemini/skills/truthmark-document/support/procedure.md +++ b/.gemini/skills/truthmark-document/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Document Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Document diff --git a/.gemini/skills/truthmark-document/support/report-template.md b/.gemini/skills/truthmark-document/support/report-template.md index 22741ff..39c8efc 100644 --- a/.gemini/skills/truthmark-document/support/report-template.md +++ b/.gemini/skills/truthmark-document/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Document Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.gemini/skills/truthmark-document/support/subagents-and-leases.md b/.gemini/skills/truthmark-document/support/subagents-and-leases.md index 73c161c..5411d32 100644 --- a/.gemini/skills/truthmark-document/support/subagents-and-leases.md +++ b/.gemini/skills/truthmark-document/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Document Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Gemini CLI subagent mode: - use automatically when this workflow runs in Gemini CLI and the parent agent chooses bounded project subagent fan-out diff --git a/.gemini/skills/truthmark-preview/SKILL.md b/.gemini/skills/truthmark-preview/SKILL.md index 0bcf1cb..3107500 100644 --- a/.gemini/skills/truthmark-preview/SKILL.md +++ b/.gemini/skills/truthmark-preview/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Preview diff --git a/.gemini/skills/truthmark-preview/support/procedure.md b/.gemini/skills/truthmark-preview/support/procedure.md index d419bf2..2a3f60a 100644 --- a/.gemini/skills/truthmark-preview/support/procedure.md +++ b/.gemini/skills/truthmark-preview/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Preview Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.gemini/skills/truthmark-preview/support/report-template.md b/.gemini/skills/truthmark-preview/support/report-template.md index 72cf72b..2e63308 100644 --- a/.gemini/skills/truthmark-preview/support/report-template.md +++ b/.gemini/skills/truthmark-preview/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Preview Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.gemini/skills/truthmark-preview/support/subagents-and-leases.md b/.gemini/skills/truthmark-preview/support/subagents-and-leases.md index 411fa28..6f25b84 100644 --- a/.gemini/skills/truthmark-preview/support/subagents-and-leases.md +++ b/.gemini/skills/truthmark-preview/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Preview Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Gemini CLI subagent mode: - use automatically when this workflow runs in Gemini CLI and the parent agent chooses bounded project subagent fan-out diff --git a/.gemini/skills/truthmark-realize/SKILL.md b/.gemini/skills/truthmark-realize/SKILL.md index 41a7a43..a438f06 100644 --- a/.gemini/skills/truthmark-realize/SKILL.md +++ b/.gemini/skills/truthmark-realize/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.gemini/skills/truthmark-realize/support/procedure.md b/.gemini/skills/truthmark-realize/support/procedure.md index aa9883b..2deeaff 100644 --- a/.gemini/skills/truthmark-realize/support/procedure.md +++ b/.gemini/skills/truthmark-realize/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Realize Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Realize diff --git a/.gemini/skills/truthmark-realize/support/report-template.md b/.gemini/skills/truthmark-realize/support/report-template.md index e49dde5..6e887cc 100644 --- a/.gemini/skills/truthmark-realize/support/report-template.md +++ b/.gemini/skills/truthmark-realize/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Realize Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.gemini/skills/truthmark-structure/SKILL.md b/.gemini/skills/truthmark-structure/SKILL.md index 59f926c..1a942d5 100644 --- a/.gemini/skills/truthmark-structure/SKILL.md +++ b/.gemini/skills/truthmark-structure/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Structure diff --git a/.gemini/skills/truthmark-structure/support/procedure.md b/.gemini/skills/truthmark-structure/support/procedure.md index 9104b33..a780a95 100644 --- a/.gemini/skills/truthmark-structure/support/procedure.md +++ b/.gemini/skills/truthmark-structure/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Structure Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill to design or repair Truthmark area structure. Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure. diff --git a/.gemini/skills/truthmark-structure/support/report-template.md b/.gemini/skills/truthmark-structure/support/report-template.md index c104da3..11efef7 100644 --- a/.gemini/skills/truthmark-structure/support/report-template.md +++ b/.gemini/skills/truthmark-structure/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Structure Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.gemini/skills/truthmark-structure/support/subagents-and-leases.md b/.gemini/skills/truthmark-structure/support/subagents-and-leases.md index eef3b0b..ce2df28 100644 --- a/.gemini/skills/truthmark-structure/support/subagents-and-leases.md +++ b/.gemini/skills/truthmark-structure/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Structure Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Gemini CLI subagent mode: - use automatically when this workflow runs in Gemini CLI and the parent agent chooses bounded project subagent fan-out diff --git a/.gemini/skills/truthmark-sync/SKILL.md b/.gemini/skills/truthmark-sync/SKILL.md index e6b801d..8dd8c9f 100644 --- a/.gemini/skills/truthmark-sync/SKILL.md +++ b/.gemini/skills/truthmark-sync/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Sync diff --git a/.gemini/skills/truthmark-sync/helper-manifest.yml b/.gemini/skills/truthmark-sync/helper-manifest.yml index ce58751..669b903 100644 --- a/.gemini/skills/truthmark-sync/helper-manifest.yml +++ b/.gemini/skills/truthmark-sync/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-sync-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: "manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked" validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.gemini/skills/truthmark-sync/support/helper-policy.md b/.gemini/skills/truthmark-sync/support/helper-policy.md index c3d00c7..78e8645 100644 --- a/.gemini/skills/truthmark-sync/support/helper-policy.md +++ b/.gemini/skills/truthmark-sync/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-sync-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-sync-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.gemini/skills/truthmark-sync/support/procedure.md b/.gemini/skills/truthmark-sync/support/procedure.md index a80e050..8eadc6f 100644 --- a/.gemini/skills/truthmark-sync/support/procedure.md +++ b/.gemini/skills/truthmark-sync/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Sync Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync. diff --git a/.gemini/skills/truthmark-sync/support/report-template.md b/.gemini/skills/truthmark-sync/support/report-template.md index 9bce186..4cca036 100644 --- a/.gemini/skills/truthmark-sync/support/report-template.md +++ b/.gemini/skills/truthmark-sync/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Sync Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.gemini/skills/truthmark-sync/support/subagents-and-leases.md b/.gemini/skills/truthmark-sync/support/subagents-and-leases.md index 5ad280c..7865dd0 100644 --- a/.gemini/skills/truthmark-sync/support/subagents-and-leases.md +++ b/.gemini/skills/truthmark-sync/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Sync Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Gemini CLI subagent mode: - use automatically when this workflow runs in Gemini CLI and the parent agent chooses bounded project subagent fan-out diff --git a/.github/agents/truth-claim-verifier.agent.md b/.github/agents/truth-claim-verifier.agent.md index 0b026ff..f835d02 100644 --- a/.github/agents/truth-claim-verifier.agent.md +++ b/.github/agents/truth-claim-verifier.agent.md @@ -4,7 +4,7 @@ description: Read-only Truthmark claim verifier for checking canonical truth aga tools: [read, search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Stay read-only. Verify the behavior-bearing truth claims assigned by the parent against primary checkout evidence. diff --git a/.github/agents/truth-doc-reviewer.agent.md b/.github/agents/truth-doc-reviewer.agent.md index 97e5c9e..599d246 100644 --- a/.github/agents/truth-doc-reviewer.agent.md +++ b/.github/agents/truth-doc-reviewer.agent.md @@ -4,7 +4,7 @@ description: Read-only Truthmark doc reviewer for shape, decision, rationale, an tools: [read, search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Stay read-only. Review assigned canonical truth docs for frontmatter, source_of_truth, required template sections, Evidence checked entries, Product Decisions, and Rationale. diff --git a/.github/agents/truth-doc-writer.agent.md b/.github/agents/truth-doc-writer.agent.md index 29352a9..13780d9 100644 --- a/.github/agents/truth-doc-writer.agent.md +++ b/.github/agents/truth-doc-writer.agent.md @@ -4,7 +4,7 @@ description: Write-capable Truthmark doc worker for one parent-leased truth-docu tools: [read, search, edit] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Write one leased Truthmark truth-document shard assigned by the parent. Require an explicit write lease before editing. The lease must name workflow, worker, shard, objective, requiredReads, allowedWrites, forbiddenWrites, evidenceRequired, verification, and reportFields. diff --git a/.github/agents/truth-route-auditor.agent.md b/.github/agents/truth-route-auditor.agent.md index 28e45ab..3e8bbc0c 100644 --- a/.github/agents/truth-route-auditor.agent.md +++ b/.github/agents/truth-route-auditor.agent.md @@ -4,7 +4,7 @@ description: Read-only Truthmark route auditor for bounded routing and ownership tools: [read, search] --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Stay read-only. Audit one bounded Truthmark route, area, or doc shard assigned by the parent. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 78b7068..b245a84 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -9,7 +9,7 @@ Agent-specific: ## Truthmark Workflow -Generated by Truthmark 1.6.0. Rerun `truthmark init` after upgrades. +Generated by Truthmark 1.6.1. Rerun `truthmark init` after upgrades. Hierarchy hints: config .truthmark/config.yml when present; routes docs/truthmark/areas.md and docs/truthmark/areas/**/*.md when present; Truth docs: docs/truth/**/*.md when present. Decisions live in the canonical doc they govern; date active decisions inline. Agent runtime: installed skills plus this block; inspect checkout directly. Delegation is host-owned. diff --git a/.github/prompts/truthmark-check.prompt.md b/.github/prompts/truthmark-check.prompt.md index 7d32da3..ae9d13c 100644 --- a/.github/prompts/truthmark-check.prompt.md +++ b/.github/prompts/truthmark-check.prompt.md @@ -8,7 +8,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.github/prompts/truthmark-document.prompt.md b/.github/prompts/truthmark-document.prompt.md index d2946cd..52ed675 100644 --- a/.github/prompts/truthmark-document.prompt.md +++ b/.github/prompts/truthmark-document.prompt.md @@ -8,7 +8,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.github/prompts/truthmark-preview.prompt.md b/.github/prompts/truthmark-preview.prompt.md index 55da8ca..767ded1 100644 --- a/.github/prompts/truthmark-preview.prompt.md +++ b/.github/prompts/truthmark-preview.prompt.md @@ -8,7 +8,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.github/prompts/truthmark-realize.prompt.md b/.github/prompts/truthmark-realize.prompt.md index ae768d6..a8bb909 100644 --- a/.github/prompts/truthmark-realize.prompt.md +++ b/.github/prompts/truthmark-realize.prompt.md @@ -8,7 +8,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.github/prompts/truthmark-structure.prompt.md b/.github/prompts/truthmark-structure.prompt.md index 487eea8..2319899 100644 --- a/.github/prompts/truthmark-structure.prompt.md +++ b/.github/prompts/truthmark-structure.prompt.md @@ -8,7 +8,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill to design or repair Truthmark area structure. diff --git a/.github/prompts/truthmark-sync.prompt.md b/.github/prompts/truthmark-sync.prompt.md index 5bb83aa..76550ab 100644 --- a/.github/prompts/truthmark-sync.prompt.md +++ b/.github/prompts/truthmark-sync.prompt.md @@ -8,7 +8,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. diff --git a/.github/skills/truthmark-check/SKILL.md b/.github/skills/truthmark-check/SKILL.md index 67d1482..d56004c 100644 --- a/.github/skills/truthmark-check/SKILL.md +++ b/.github/skills/truthmark-check/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.github/skills/truthmark-check/support/procedure.md b/.github/skills/truthmark-check/support/procedure.md index 33b7663..72baa9b 100644 --- a/.github/skills/truthmark-check/support/procedure.md +++ b/.github/skills/truthmark-check/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Check Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Check diff --git a/.github/skills/truthmark-check/support/report-template.md b/.github/skills/truthmark-check/support/report-template.md index e98269e..2ce828e 100644 --- a/.github/skills/truthmark-check/support/report-template.md +++ b/.github/skills/truthmark-check/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Check Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.github/skills/truthmark-check/support/subagents-and-leases.md b/.github/skills/truthmark-check/support/subagents-and-leases.md index a6522ec..5fbce04 100644 --- a/.github/skills/truthmark-check/support/subagents-and-leases.md +++ b/.github/skills/truthmark-check/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Check Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Copilot custom-agent mode: - use automatically when this workflow runs in Copilot and the parent agent chooses bounded custom-agent fan-out diff --git a/.github/skills/truthmark-document/SKILL.md b/.github/skills/truthmark-document/SKILL.md index e1f4285..3cad910 100644 --- a/.github/skills/truthmark-document/SKILL.md +++ b/.github/skills/truthmark-document/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.github/skills/truthmark-document/helper-manifest.yml b/.github/skills/truthmark-document/helper-manifest.yml index dc05fe5..2446476 100644 --- a/.github/skills/truthmark-document/helper-manifest.yml +++ b/.github/skills/truthmark-document/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-document-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: manually validate support/report-template.md required sections and structured Evidence checked entries validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.github/skills/truthmark-document/support/helper-policy.md b/.github/skills/truthmark-document/support/helper-policy.md index 53b72b7..e545d84 100644 --- a/.github/skills/truthmark-document/support/helper-policy.md +++ b/.github/skills/truthmark-document/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-document-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-document-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.github/skills/truthmark-document/support/procedure.md b/.github/skills/truthmark-document/support/procedure.md index 44d8eb3..a7a9c31 100644 --- a/.github/skills/truthmark-document/support/procedure.md +++ b/.github/skills/truthmark-document/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Document Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Document diff --git a/.github/skills/truthmark-document/support/report-template.md b/.github/skills/truthmark-document/support/report-template.md index 22741ff..39c8efc 100644 --- a/.github/skills/truthmark-document/support/report-template.md +++ b/.github/skills/truthmark-document/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Document Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.github/skills/truthmark-document/support/subagents-and-leases.md b/.github/skills/truthmark-document/support/subagents-and-leases.md index 0bde5f6..6328897 100644 --- a/.github/skills/truthmark-document/support/subagents-and-leases.md +++ b/.github/skills/truthmark-document/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Document Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Copilot custom-agent mode: - use automatically when this workflow runs in Copilot and the parent agent chooses bounded custom-agent fan-out diff --git a/.github/skills/truthmark-preview/SKILL.md b/.github/skills/truthmark-preview/SKILL.md index 06b91c9..3a3b401 100644 --- a/.github/skills/truthmark-preview/SKILL.md +++ b/.github/skills/truthmark-preview/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Preview diff --git a/.github/skills/truthmark-preview/support/procedure.md b/.github/skills/truthmark-preview/support/procedure.md index d419bf2..2a3f60a 100644 --- a/.github/skills/truthmark-preview/support/procedure.md +++ b/.github/skills/truthmark-preview/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Preview Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.github/skills/truthmark-preview/support/report-template.md b/.github/skills/truthmark-preview/support/report-template.md index 72cf72b..2e63308 100644 --- a/.github/skills/truthmark-preview/support/report-template.md +++ b/.github/skills/truthmark-preview/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Preview Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.github/skills/truthmark-preview/support/subagents-and-leases.md b/.github/skills/truthmark-preview/support/subagents-and-leases.md index bdcaeea..43fd52e 100644 --- a/.github/skills/truthmark-preview/support/subagents-and-leases.md +++ b/.github/skills/truthmark-preview/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Preview Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Copilot custom-agent mode: - use automatically when this workflow runs in Copilot and the parent agent chooses bounded custom-agent fan-out diff --git a/.github/skills/truthmark-realize/SKILL.md b/.github/skills/truthmark-realize/SKILL.md index 7ce60a0..4330516 100644 --- a/.github/skills/truthmark-realize/SKILL.md +++ b/.github/skills/truthmark-realize/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.github/skills/truthmark-realize/support/procedure.md b/.github/skills/truthmark-realize/support/procedure.md index aa9883b..2deeaff 100644 --- a/.github/skills/truthmark-realize/support/procedure.md +++ b/.github/skills/truthmark-realize/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Realize Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Realize diff --git a/.github/skills/truthmark-realize/support/report-template.md b/.github/skills/truthmark-realize/support/report-template.md index e49dde5..6e887cc 100644 --- a/.github/skills/truthmark-realize/support/report-template.md +++ b/.github/skills/truthmark-realize/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Realize Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.github/skills/truthmark-structure/SKILL.md b/.github/skills/truthmark-structure/SKILL.md index a378a21..8a468d8 100644 --- a/.github/skills/truthmark-structure/SKILL.md +++ b/.github/skills/truthmark-structure/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Structure diff --git a/.github/skills/truthmark-structure/support/procedure.md b/.github/skills/truthmark-structure/support/procedure.md index 9104b33..a780a95 100644 --- a/.github/skills/truthmark-structure/support/procedure.md +++ b/.github/skills/truthmark-structure/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Structure Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill to design or repair Truthmark area structure. Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure. diff --git a/.github/skills/truthmark-structure/support/report-template.md b/.github/skills/truthmark-structure/support/report-template.md index c104da3..11efef7 100644 --- a/.github/skills/truthmark-structure/support/report-template.md +++ b/.github/skills/truthmark-structure/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Structure Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.github/skills/truthmark-structure/support/subagents-and-leases.md b/.github/skills/truthmark-structure/support/subagents-and-leases.md index 80b7c90..1092cf2 100644 --- a/.github/skills/truthmark-structure/support/subagents-and-leases.md +++ b/.github/skills/truthmark-structure/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Structure Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Copilot custom-agent mode: - use automatically when this workflow runs in Copilot and the parent agent chooses bounded custom-agent fan-out diff --git a/.github/skills/truthmark-sync/SKILL.md b/.github/skills/truthmark-sync/SKILL.md index 6856bf8..f5df8a4 100644 --- a/.github/skills/truthmark-sync/SKILL.md +++ b/.github/skills/truthmark-sync/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Sync diff --git a/.github/skills/truthmark-sync/helper-manifest.yml b/.github/skills/truthmark-sync/helper-manifest.yml index ce58751..669b903 100644 --- a/.github/skills/truthmark-sync/helper-manifest.yml +++ b/.github/skills/truthmark-sync/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-sync-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: "manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked" validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.github/skills/truthmark-sync/support/helper-policy.md b/.github/skills/truthmark-sync/support/helper-policy.md index c3d00c7..78e8645 100644 --- a/.github/skills/truthmark-sync/support/helper-policy.md +++ b/.github/skills/truthmark-sync/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-sync-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-sync-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.github/skills/truthmark-sync/support/procedure.md b/.github/skills/truthmark-sync/support/procedure.md index a80e050..8eadc6f 100644 --- a/.github/skills/truthmark-sync/support/procedure.md +++ b/.github/skills/truthmark-sync/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Sync Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync. diff --git a/.github/skills/truthmark-sync/support/report-template.md b/.github/skills/truthmark-sync/support/report-template.md index 9bce186..4cca036 100644 --- a/.github/skills/truthmark-sync/support/report-template.md +++ b/.github/skills/truthmark-sync/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Sync Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.github/skills/truthmark-sync/support/subagents-and-leases.md b/.github/skills/truthmark-sync/support/subagents-and-leases.md index fbfd493..1f5da8c 100644 --- a/.github/skills/truthmark-sync/support/subagents-and-leases.md +++ b/.github/skills/truthmark-sync/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Sync Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Copilot custom-agent mode: - use automatically when this workflow runs in Copilot and the parent agent chooses bounded custom-agent fan-out diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 029501d..c3c6d66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,12 +6,15 @@ on: - main pull_request: +permissions: + contents: read + jobs: verify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: 24 cache: npm diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1102622..d7e4945 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v6 with: node-version: 24 registry-url: https://registry.npmjs.org diff --git a/.opencode/agents/truth-claim-verifier.md b/.opencode/agents/truth-claim-verifier.md index 80493a8..5cfb60b 100644 --- a/.opencode/agents/truth-claim-verifier.md +++ b/.opencode/agents/truth-claim-verifier.md @@ -16,7 +16,7 @@ permission: "grep *": allow --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-claim-verifier diff --git a/.opencode/agents/truth-doc-reviewer.md b/.opencode/agents/truth-doc-reviewer.md index c24e525..9351126 100644 --- a/.opencode/agents/truth-doc-reviewer.md +++ b/.opencode/agents/truth-doc-reviewer.md @@ -16,7 +16,7 @@ permission: "grep *": allow --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-doc-reviewer diff --git a/.opencode/agents/truth-doc-writer.md b/.opencode/agents/truth-doc-writer.md index ce3eb03..fff01b3 100644 --- a/.opencode/agents/truth-doc-writer.md +++ b/.opencode/agents/truth-doc-writer.md @@ -21,7 +21,7 @@ permission: "git diff*": allow --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-doc-writer diff --git a/.opencode/agents/truth-route-auditor.md b/.opencode/agents/truth-route-auditor.md index e0cf811..0475015 100644 --- a/.opencode/agents/truth-route-auditor.md +++ b/.opencode/agents/truth-route-auditor.md @@ -16,7 +16,7 @@ permission: "grep *": allow --- -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Manual invocation: @truth-route-auditor diff --git a/.opencode/skills/truthmark-check/SKILL.md b/.opencode/skills/truthmark-check/SKILL.md index a81e78f..e330fd0 100644 --- a/.opencode/skills/truthmark-check/SKILL.md +++ b/.opencode/skills/truthmark-check/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-check description: Use when the user asks to audit repository truth health, routing, ownership, or canonical docs. Not for normal lint/test/typecheck/code-review verification, finish-time Sync, or silently rewriting docs. argument-hint: Optional area, doc path, or audit focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Check diff --git a/.opencode/skills/truthmark-check/support/procedure.md b/.opencode/skills/truthmark-check/support/procedure.md index 33b7663..72baa9b 100644 --- a/.opencode/skills/truthmark-check/support/procedure.md +++ b/.opencode/skills/truthmark-check/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Check Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Check diff --git a/.opencode/skills/truthmark-check/support/report-template.md b/.opencode/skills/truthmark-check/support/report-template.md index e98269e..2ce828e 100644 --- a/.opencode/skills/truthmark-check/support/report-template.md +++ b/.opencode/skills/truthmark-check/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Check Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.opencode/skills/truthmark-check/support/subagents-and-leases.md b/.opencode/skills/truthmark-check/support/subagents-and-leases.md index e97782a..254cfb4 100644 --- a/.opencode/skills/truthmark-check/support/subagents-and-leases.md +++ b/.opencode/skills/truthmark-check/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Check Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. OpenCode subagent mode: - use automatically when this workflow runs in OpenCode and the parent agent chooses bounded subagent fan-out diff --git a/.opencode/skills/truthmark-document/SKILL.md b/.opencode/skills/truthmark-document/SKILL.md index 751caa5..6e2469f 100644 --- a/.opencode/skills/truthmark-document/SKILL.md +++ b/.opencode/skills/truthmark-document/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-document description: Use when the user asks to document existing implemented behavior, or Sync, Check, or Structure finds implemented behavior missing canonical truth. Not for functional-code changes, doc-first implementation, or topology repair that needs Structure. argument-hint: Optional implemented behavior, API endpoint, route, controller, package, or truth-doc area to document user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Document diff --git a/.opencode/skills/truthmark-document/helper-manifest.yml b/.opencode/skills/truthmark-document/helper-manifest.yml index dc05fe5..2446476 100644 --- a/.opencode/skills/truthmark-document/helper-manifest.yml +++ b/.opencode/skills/truthmark-document/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-document-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: manually validate support/report-template.md required sections and structured Evidence checked entries validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.opencode/skills/truthmark-document/support/helper-policy.md b/.opencode/skills/truthmark-document/support/helper-policy.md index 53b72b7..e545d84 100644 --- a/.opencode/skills/truthmark-document/support/helper-policy.md +++ b/.opencode/skills/truthmark-document/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-document-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-document-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md required sections and structured Evidence checked entries +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.opencode/skills/truthmark-document/support/procedure.md b/.opencode/skills/truthmark-document/support/procedure.md index 44d8eb3..a7a9c31 100644 --- a/.opencode/skills/truthmark-document/support/procedure.md +++ b/.opencode/skills/truthmark-document/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Document Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Document diff --git a/.opencode/skills/truthmark-document/support/report-template.md b/.opencode/skills/truthmark-document/support/report-template.md index 22741ff..39c8efc 100644 --- a/.opencode/skills/truthmark-document/support/report-template.md +++ b/.opencode/skills/truthmark-document/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Document Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.opencode/skills/truthmark-document/support/subagents-and-leases.md b/.opencode/skills/truthmark-document/support/subagents-and-leases.md index 2ee223f..a8c3f15 100644 --- a/.opencode/skills/truthmark-document/support/subagents-and-leases.md +++ b/.opencode/skills/truthmark-document/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Document Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. OpenCode subagent mode: - use automatically when this workflow runs in OpenCode and the parent agent chooses bounded subagent fan-out diff --git a/.opencode/skills/truthmark-preview/SKILL.md b/.opencode/skills/truthmark-preview/SKILL.md index 05e0598..c9acc27 100644 --- a/.opencode/skills/truthmark-preview/SKILL.md +++ b/.opencode/skills/truthmark-preview/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-preview description: Use when the user explicitly asks to preview likely workflow routing, target files, writes, or subagent use before edits. Not for validation, automatic gates, final correctness, or replacing Truth Check. argument-hint: Optional requested outcome, code area, doc path, or routing question user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Preview diff --git a/.opencode/skills/truthmark-preview/support/procedure.md b/.opencode/skills/truthmark-preview/support/procedure.md index d419bf2..2a3f60a 100644 --- a/.opencode/skills/truthmark-preview/support/procedure.md +++ b/.opencode/skills/truthmark-preview/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Preview Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits. diff --git a/.opencode/skills/truthmark-preview/support/report-template.md b/.opencode/skills/truthmark-preview/support/report-template.md index 72cf72b..2e63308 100644 --- a/.opencode/skills/truthmark-preview/support/report-template.md +++ b/.opencode/skills/truthmark-preview/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Preview Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.opencode/skills/truthmark-preview/support/subagents-and-leases.md b/.opencode/skills/truthmark-preview/support/subagents-and-leases.md index 07a7a42..8f043a0 100644 --- a/.opencode/skills/truthmark-preview/support/subagents-and-leases.md +++ b/.opencode/skills/truthmark-preview/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Preview Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. OpenCode subagent mode: - use automatically when this workflow runs in OpenCode and the parent agent chooses bounded subagent fan-out diff --git a/.opencode/skills/truthmark-realize/SKILL.md b/.opencode/skills/truthmark-realize/SKILL.md index c91e02d..afbe84c 100644 --- a/.opencode/skills/truthmark-realize/SKILL.md +++ b/.opencode/skills/truthmark-realize/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-realize description: Use when the user explicitly asks to realize Truthmark truth docs into code, including /truthmark-realize, $truthmark-realize, or /truthmark:realize. Not for syncing docs after code changes, documenting existing code, topology repair, or truth audits. argument-hint: Optional truth doc path, area, or desired code behavior to realize user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Realize diff --git a/.opencode/skills/truthmark-realize/support/procedure.md b/.opencode/skills/truthmark-realize/support/procedure.md index aa9883b..2deeaff 100644 --- a/.opencode/skills/truthmark-realize/support/procedure.md +++ b/.opencode/skills/truthmark-realize/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Realize Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. # Truthmark Realize diff --git a/.opencode/skills/truthmark-realize/support/report-template.md b/.opencode/skills/truthmark-realize/support/report-template.md index e49dde5..6e887cc 100644 --- a/.opencode/skills/truthmark-realize/support/report-template.md +++ b/.opencode/skills/truthmark-realize/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Realize Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: diff --git a/.opencode/skills/truthmark-structure/SKILL.md b/.opencode/skills/truthmark-structure/SKILL.md index 67f522b..c250fc2 100644 --- a/.opencode/skills/truthmark-structure/SKILL.md +++ b/.opencode/skills/truthmark-structure/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-structure description: Use when routing or truth ownership is missing, stale, broad, overloaded, catch-all, unrouteable, mixed-owner, needs split/repair, or needs new area setup. Not for documenting implemented behavior, syncing a code diff, or realizing docs into code. argument-hint: Optional area, directory, or routing concern user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Structure diff --git a/.opencode/skills/truthmark-structure/support/procedure.md b/.opencode/skills/truthmark-structure/support/procedure.md index 9104b33..a780a95 100644 --- a/.opencode/skills/truthmark-structure/support/procedure.md +++ b/.opencode/skills/truthmark-structure/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Structure Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill to design or repair Truthmark area structure. Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure. diff --git a/.opencode/skills/truthmark-structure/support/report-template.md b/.opencode/skills/truthmark-structure/support/report-template.md index c104da3..11efef7 100644 --- a/.opencode/skills/truthmark-structure/support/report-template.md +++ b/.opencode/skills/truthmark-structure/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Structure Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.opencode/skills/truthmark-structure/support/subagents-and-leases.md b/.opencode/skills/truthmark-structure/support/subagents-and-leases.md index fa54016..c92be1b 100644 --- a/.opencode/skills/truthmark-structure/support/subagents-and-leases.md +++ b/.opencode/skills/truthmark-structure/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Structure Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. OpenCode subagent mode: - use automatically when this workflow runs in OpenCode and the parent agent chooses bounded subagent fan-out diff --git a/.opencode/skills/truthmark-sync/SKILL.md b/.opencode/skills/truthmark-sync/SKILL.md index 651ffc3..94278d7 100644 --- a/.opencode/skills/truthmark-sync/SKILL.md +++ b/.opencode/skills/truthmark-sync/SKILL.md @@ -3,7 +3,7 @@ name: truthmark-sync description: Use automatically at finish-time after functional code changes, or explicit /truthmark-sync, $truthmark-sync, or /truthmark:sync. Skip docs-only, formatting-only, behavior-preserving renames, missing config, and no-code changes. Not for doc-first realization or manual topology design. argument-hint: Optional changed-code area, truth-doc area, or sync focus user-invocable: true -truthmark-version: 1.6.0 +truthmark-version: 1.6.1 --- # Truthmark Sync diff --git a/.opencode/skills/truthmark-sync/helper-manifest.yml b/.opencode/skills/truthmark-sync/helper-manifest.yml index ce58751..669b903 100644 --- a/.opencode/skills/truthmark-sync/helper-manifest.yml +++ b/.opencode/skills/truthmark-sync/helper-manifest.yml @@ -1,8 +1,8 @@ -# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +# Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. helpers: validate-sync-report: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark @@ -17,7 +17,7 @@ helpers: fallback: "manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked" validate-write-lease: optional: true - runner: truthmark>=1.6.0 + runner: truthmark>=1.6.1 command: argv: - truthmark diff --git a/.opencode/skills/truthmark-sync/support/helper-policy.md b/.opencode/skills/truthmark-sync/support/helper-policy.md index c3d00c7..78e8645 100644 --- a/.opencode/skills/truthmark-sync/support/helper-policy.md +++ b/.opencode/skills/truthmark-sync/support/helper-policy.md @@ -1,6 +1,6 @@ # Optional Helper CLI Policy -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Optional helper CLI commands may collect deterministic checkout facts or validate artifacts. If the Truthmark CLI is unavailable or too old for a declared helper, continue manually using this procedure and report which helper was skipped. Helper output is derived evidence; it does not override direct checkout inspection, workflow write boundaries, or parent acceptance. @@ -11,8 +11,8 @@ Runner detection: - Do not fail the workflow solely because a helper cannot run. Available helpers: -- validate-sync-report: optional truthmark>=1.6.0; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked -- validate-write-lease: optional truthmark>=1.6.0; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files +- validate-sync-report: optional truthmark>=1.6.1; manual fallback: manually validate support/report-template.md and check Evidence checked entries match Claim, indented Evidence, and Result: supported | narrowed | removed | blocked +- validate-write-lease: optional truthmark>=1.6.1; manual fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files Final reports should include helper status when helpers are declared for this workflow: diff --git a/.opencode/skills/truthmark-sync/support/procedure.md b/.opencode/skills/truthmark-sync/support/procedure.md index a80e050..8eadc6f 100644 --- a/.opencode/skills/truthmark-sync/support/procedure.md +++ b/.opencode/skills/truthmark-sync/support/procedure.md @@ -1,6 +1,6 @@ # Truthmark Sync Procedure -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Use this skill automatically before finishing when functional code changed since the last successful Truth Sync. Also run it immediately when the user explicitly invokes Truth Sync. Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync. diff --git a/.opencode/skills/truthmark-sync/support/report-template.md b/.opencode/skills/truthmark-sync/support/report-template.md index 9bce186..4cca036 100644 --- a/.opencode/skills/truthmark-sync/support/report-template.md +++ b/.opencode/skills/truthmark-sync/support/report-template.md @@ -1,6 +1,6 @@ # Truthmark Sync Report Template -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. Report completion in this shape: ```md diff --git a/.opencode/skills/truthmark-sync/support/subagents-and-leases.md b/.opencode/skills/truthmark-sync/support/subagents-and-leases.md index 0cf4c73..d1b0913 100644 --- a/.opencode/skills/truthmark-sync/support/subagents-and-leases.md +++ b/.opencode/skills/truthmark-sync/support/subagents-and-leases.md @@ -1,6 +1,6 @@ # Truthmark Sync Subagents And Leases -Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades. +Generated by Truthmark 1.6.1. Rerun truthmark init after upgrades. OpenCode subagent mode: - use automatically when this workflow runs in OpenCode and the parent agent chooses bounded subagent fan-out diff --git a/AGENTS.md b/AGENTS.md index 78b7068..b245a84 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,7 +9,7 @@ Agent-specific: ## Truthmark Workflow -Generated by Truthmark 1.6.0. Rerun `truthmark init` after upgrades. +Generated by Truthmark 1.6.1. Rerun `truthmark init` after upgrades. Hierarchy hints: config .truthmark/config.yml when present; routes docs/truthmark/areas.md and docs/truthmark/areas/**/*.md when present; Truth docs: docs/truth/**/*.md when present. Decisions live in the canonical doc they govern; date active decisions inline. Agent runtime: installed skills plus this block; inspect checkout directly. Delegation is host-owned. diff --git a/CLAUDE.md b/CLAUDE.md index 78b7068..b245a84 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,7 +9,7 @@ Agent-specific: ## Truthmark Workflow -Generated by Truthmark 1.6.0. Rerun `truthmark init` after upgrades. +Generated by Truthmark 1.6.1. Rerun `truthmark init` after upgrades. Hierarchy hints: config .truthmark/config.yml when present; routes docs/truthmark/areas.md and docs/truthmark/areas/**/*.md when present; Truth docs: docs/truth/**/*.md when present. Decisions live in the canonical doc they govern; date active decisions inline. Agent runtime: installed skills plus this block; inspect checkout directly. Delegation is host-owned. diff --git a/GEMINI.md b/GEMINI.md index 78b7068..b245a84 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -9,7 +9,7 @@ Agent-specific: ## Truthmark Workflow -Generated by Truthmark 1.6.0. Rerun `truthmark init` after upgrades. +Generated by Truthmark 1.6.1. Rerun `truthmark init` after upgrades. Hierarchy hints: config .truthmark/config.yml when present; routes docs/truthmark/areas.md and docs/truthmark/areas/**/*.md when present; Truth docs: docs/truth/**/*.md when present. Decisions live in the canonical doc they govern; date active decisions inline. Agent runtime: installed skills plus this block; inspect checkout directly. Delegation is host-owned. diff --git a/README.de.md b/README.de.md index ff13bf2..f45a5f9 100644 --- a/README.de.md +++ b/README.de.md @@ -155,6 +155,8 @@ Das installiert oder aktualisiert: - verwaltete Instruktionsblöcke - KI-orientierte Workflow-Oberflächen für konfigurierte Plattformen +Die Standardvorlagen für Truth-Dokumente werden in [Template Standards](docs/standards/template-standards.md) begründet. Dort werden sie anerkannten Software-Engineering-Referenzen wie ISO/IEC/IEEE 42010, ISO/IEC/IEEE 29148, ISO/IEC/IEEE 12207, ISO/IEC 25010, C4, arc42, OpenAPI, SemVer, Google SRE und Diátaxis zugeordnet. + ### Das Setup validieren ```bash diff --git a/README.es.md b/README.es.md index 386b4b5..86b3e3f 100644 --- a/README.es.md +++ b/README.es.md @@ -155,6 +155,8 @@ Esto instala o refresca: - bloques de instrucciones administrados - superficies de flujo orientadas a IA para las plataformas configuradas +Las plantillas predeterminadas de documentos de verdad se justifican en [Template Standards](docs/standards/template-standards.md), que las mapea a referencias reconocidas de ingeniería de software como ISO/IEC/IEEE 42010, ISO/IEC/IEEE 29148, ISO/IEC/IEEE 12207, ISO/IEC 25010, C4, arc42, OpenAPI, SemVer, Google SRE y Diátaxis. + ### Validar la configuración ```bash diff --git a/README.md b/README.md index b58dfaf..6f6a1d5 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,8 @@ This installs or refreshes: - managed instruction blocks - AI-facing workflow surfaces for configured platforms +Default truth-doc templates are justified in [Template Standards](docs/standards/template-standards.md), which maps them to recognized software engineering references such as ISO/IEC/IEEE 42010, ISO/IEC/IEEE 29148, ISO/IEC/IEEE 12207, ISO/IEC 25010, C4, arc42, OpenAPI, SemVer, Google SRE, and Diátaxis. + ### Validate the setup ```bash diff --git a/README.ru.md b/README.ru.md index c99938d..200df5b 100644 --- a/README.ru.md +++ b/README.ru.md @@ -155,6 +155,8 @@ truthmark init - управляемые блоки инструкций - поверхности рабочих процессов для ИИ для настроенных платформ +Обоснование стандартных шаблонов документов истины находится в [Template Standards](docs/standards/template-standards.md). В документе показано, как они соотносятся с признанными источниками по инженерии ПО, включая ISO/IEC/IEEE 42010, ISO/IEC/IEEE 29148, ISO/IEC/IEEE 12207, ISO/IEC 25010, C4, arc42, OpenAPI, SemVer, Google SRE и Diátaxis. + ### Проверить настройку ```bash diff --git a/README.zh.md b/README.zh.md index 29c66df..ff60e99 100644 --- a/README.zh.md +++ b/README.zh.md @@ -155,6 +155,8 @@ truthmark init - 受管说明块 - 已配置平台的面向 AI 工作流表面 +默认事实文档模板的依据见 [Template Standards](docs/standards/template-standards.md)。该文档说明这些模板如何对齐 ISO/IEC/IEEE 42010、ISO/IEC/IEEE 29148、ISO/IEC/IEEE 12207、ISO/IEC 25010、C4、arc42、OpenAPI、SemVer、Google SRE 和 Diátaxis 等公认软件工程参考。 + ### 验证设置 ```bash diff --git a/changes/2026-05-30-version-1-6-1.md b/changes/2026-05-30-version-1-6-1.md new file mode 100644 index 0000000..72f2202 --- /dev/null +++ b/changes/2026-05-30-version-1-6-1.md @@ -0,0 +1,22 @@ +# Version 1.6.1 + +Previous version: 1.6.0 +New version: 1.6.1 +Diff basis: release/1.6.0..HEAD plus working tree +Version action: patch +SemVer rationale: The pending release payload contains backward-compatible CLI exit-code correction and published documentation clarification, which require a patch bump. + +Release payload: +- Fix CLI command rendering so returned error diagnostics set a failing process exit code. +- Document the professional standards and reference alignment behind the default truth-document templates, and cite that rationale from localized README onboarding sections. + +User-facing release text: +- CLI commands that return error diagnostics now fail with a non-zero exit code, making automation reflect Truthmark errors correctly. +- Default truth-document template rationale is now documented with recognized software-engineering references and linked from the README. + +Verification: +- `git diff --check` +- `npx tsx src/cli/main.ts check --json` +- `npx tsx src/cli/main.ts index --json` +- `npm run package:check` +- `npm run release:check` diff --git a/docs/standards/default-principles.md b/docs/standards/default-principles.md index abb2d3e..76e26f0 100644 --- a/docs/standards/default-principles.md +++ b/docs/standards/default-principles.md @@ -100,6 +100,8 @@ When a repository has no explicit standards yet, a small default baseline is rea Truthmark can bootstrap only part of that baseline automatically today. Repositories may need to add richer standards after initialization. +The default truth-document template rationale lives in [template-standards.md](template-standards.md); it maps Truthmark's template shapes to recognized software engineering references without claiming external certification. + Projects may keep that baseline, replace it, or extend it with their own standards. ## Override Model diff --git a/docs/standards/template-standards.md b/docs/standards/template-standards.md new file mode 100644 index 0000000..7d8308a --- /dev/null +++ b/docs/standards/template-standards.md @@ -0,0 +1,101 @@ +--- +status: active +doc_type: standard +last_reviewed: 2026-05-30 +source_of_truth: + - default-principles.md + - documentation-governance.md + - testing-and-verification.md + - https://www.iso.org/standard/74393.html + - https://www.iso.org/standard/72089.html + - https://www.iso.org/standard/63712.html + - https://www.iso.org/standard/78176.html + - https://c4model.com/ + - https://docs.arc42.org/home/ + - https://sre.google/sre-book/monitoring-distributed-systems/ + - https://spec.openapis.org/oas/latest.html + - https://semver.org/ + - https://diataxis.fr/ +--- + +# Template Standards + +## Scope + +This standard explains why Truthmark's default truth-document templates are suitable bootstrap templates for professional software engineering repositories. + +The templates are not certifications, and Truthmark does not claim that a generated repository is compliant with any external standard by installing them. The templates are intentionally lightweight Markdown scaffolds that align with widely recognized software engineering documentation practices while leaving project-specific standards in the adopting repository. + +## Default Template Baseline + +Truthmark's default truth-document templates cover six common engineering documentation surfaces: + +- behavior docs for implemented product or system behavior +- contract docs for API, CLI, file, event, or integration contracts +- architecture docs for system structure, boundaries, components, and cross-cutting constraints +- workflow docs for triggers, inputs, execution steps, retry behavior, and outputs +- operations docs for runtime topology, configuration, permissions, deployment, rollback, availability, and observability +- test-behavior docs for fixtures, execution model, assertions, isolation, and failure semantics + +Every default template includes the same governance foundation: + +- frontmatter status and review metadata +- a declared source-of-truth list +- purpose and scope +- evidence-oriented guidance for default sections +- explicit current-state content rather than roadmap content +- active decisions and rationale +- non-goals to prevent scope creep +- maintenance notes for future reviewers and agents + +`truthmark init` may refresh these Truthmark-owned default template sections as the baseline improves. Existing template preambles/frontmatter are preserved on rerun so repository-owned metadata, titles, and local introductory guidance do not churn or get replaced just because the default baseline changed. Repository-specific custom `##` sections are not part of the default baseline; init preserves them and keeps their authored order relative to the next default section that followed them. + +This foundation follows Truthmark's repository-truth model: current implementation, reusable standards, architecture, and future proposals must not compete as parallel sources of authority. + +## External Standard Alignment + +| Truthmark template surface | External practice or standard alignment | Why the alignment matters | +| --- | --- | --- | +| Architecture | ISO/IEC/IEEE 42010, arc42, C4 Model | Architecture docs should make system role, boundaries, components, ownership, and quality constraints explicit instead of mixing structure with ordinary feature behavior. | +| Behavior | ISO/IEC/IEEE 29148, ISO/IEC/IEEE 12207, Diátaxis | Behavior docs should state current system behavior, rules, states, and constraints in a form maintainers can review and agents can update with implementation changes. | +| Contract | ISO/IEC/IEEE 29148, OpenAPI Specification, Semantic Versioning | Contract docs should separate inputs, outputs, diagnostics, compatibility rules, and migration/versioning expectations so external interfaces remain reviewable. | +| Workflow | ISO/IEC/IEEE 12207, Diátaxis | Workflow docs should capture triggers, inputs, steps, failure behavior, and outputs as current operational behavior rather than as hidden process memory. | +| Operations | ISO/IEC/IEEE 25010, Google SRE practices | Operations docs should make runtime topology, configuration, permissions, rollback, availability, and observability visible as maintainable repository truth. | +| Test behavior | ISO/IEC/IEEE 12207, Truthmark testing-and-verification standard | Test-behavior docs should describe the test surface, data model, assertions, isolation rules, and failure semantics needed to keep verification meaningful. | + +## Justification For The Template Shape + +Truthmark defaults are justified because they optimize for the reviewable artifacts software teams need after AI-assisted changes: + +1. **Traceability:** `source_of_truth` metadata and routing docs make it clear which code, docs, or standards support a claim. +2. **Single responsibility:** each template asks for a bounded document scope so one file does not become a feature manual, architecture note, changelog, and operations runbook at once. +3. **Current-state authority:** sections are written for implemented behavior and active decisions, not historical plans or desired futures. +4. **Decision capture:** `Product Decisions` and `Rationale` preserve non-obvious tradeoffs without requiring a separate ADR process for every small behavior decision. +5. **Interface discipline:** contract templates isolate inputs, outputs, diagnostics, compatibility, and migration rules, matching how professional teams review public interfaces. +6. **Operational readiness:** operations templates include configuration, permissions, deployment, rollback, availability, and observability because production behavior is part of repository truth. +7. **Verification discipline:** test-behavior templates and the testing standard keep assertions, fixtures, isolation, and failure semantics explicit. +8. **Override safety:** defaults are bootstrap guidance only; mature projects should replace or extend them with project-specific standards when those standards are clearer. + +## Reference Notes + +- ISO/IEC/IEEE 42010 supports the architecture-template focus on concerns, boundaries, viewpoints, and architecture rationale. +- ISO/IEC/IEEE 29148 supports the behavior and contract-template focus on requirements, constraints, interfaces, and traceable statements. +- ISO/IEC/IEEE 12207 supports the lifecycle-template focus on processes, implementation, verification, operation, and maintenance. +- ISO/IEC 25010 supports cross-cutting quality attributes such as maintainability, reliability, usability, security, and portability. +- C4 and arc42 provide practical, industry-adopted architecture-documentation shapes that map well to Truthmark's architecture sections. +- OpenAPI and Semantic Versioning provide practical anchors for contract shape, compatibility, and migration language. +- Google SRE practices justify keeping availability, observability, rollback, and operational behavior explicit. +- Diátaxis reinforces the separation between explanation, reference, how-to, and tutorial content; Truthmark uses that principle to avoid mixed-purpose truth docs. + +## Non-Goals + +- Truthmark templates do not replace project-specific engineering standards. +- Truthmark templates do not certify compliance with ISO, IEEE, OpenAPI, SRE, C4, arc42, SemVer, or Diátaxis. +- Truthmark templates do not require every repository to keep every document kind. +- Truthmark templates do not make roadmap proposals canonical current truth. + +## Maintenance Notes + +Update this standard when Truthmark adds, removes, renames, or materially changes default truth-document templates, or when the references behind the default template rationale change. + +When changing default template content, keep `docs/templates/*.md`, `src/templates/init-files.ts`, `docs/standards/default-principles.md`, and this standard aligned. diff --git a/docs/templates/architecture-doc.md b/docs/templates/architecture-doc.md index 5dc9af9..a6960df 100644 --- a/docs/templates/architecture-doc.md +++ b/docs/templates/architecture-doc.md @@ -2,7 +2,7 @@ status: active doc_type: architecture truth_kind: architecture -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,48 +11,110 @@ source_of_truth: ## Purpose + + {{purpose}} ## Scope + + {{scope}} ## System Role + + {{system_role}} ## Boundaries + + {{boundaries}} ## Components + + {{components}} ## Data And Control Flow + + {{data_and_control_flow}} ## Ownership + + {{ownership}} ## Cross-Cutting Constraints + + {{cross_cutting_constraints}} ## Product Decisions + + {{decision}} ## Rationale + + {{rationale}} ## Non-Goals + + {{non_goals}} ## Maintenance Notes -{{maintenance_notes}} \ No newline at end of file + + +{{maintenance_notes}} diff --git a/docs/templates/behavior-doc.md b/docs/templates/behavior-doc.md index 84ac4a9..398bd67 100644 --- a/docs/templates/behavior-doc.md +++ b/docs/templates/behavior-doc.md @@ -2,7 +2,7 @@ status: active doc_type: behavior truth_kind: behavior -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,71 +11,96 @@ source_of_truth: ## Purpose - + {{purpose}} ## Scope -{{scope}} - +{{scope}} + This doc was created from the editable behavior-doc template at {{template_path}}. ## Current Behavior - + {{current_behavior}} ## Core Rules - + {{core_rules}} ## Flows And States - + {{flows_and_states}} ## Contracts - + {{contracts}} ## Product Decisions - + {{decision}} ## Rationale - + {{rationale}} ## Non-Goals - + {{non_goals}} ## Maintenance Notes - + -{{maintenance_notes}} \ No newline at end of file +{{maintenance_notes}} diff --git a/docs/templates/contract-doc.md b/docs/templates/contract-doc.md index 8103001..bfb8299 100644 --- a/docs/templates/contract-doc.md +++ b/docs/templates/contract-doc.md @@ -2,7 +2,7 @@ status: active doc_type: contract truth_kind: contract -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,48 +11,110 @@ source_of_truth: ## Purpose + + {{purpose}} ## Scope + + {{scope}} ## Contract Surface + + {{contract_surface}} ## Inputs + + {{inputs}} ## Outputs + + {{outputs}} ## Errors And Diagnostics + + {{errors_and_diagnostics}} ## Compatibility Rules + + {{compatibility_rules}} ## Versioning And Migration + + {{versioning_and_migration}} ## Product Decisions + + {{decision}} ## Rationale + + {{rationale}} ## Non-Goals + + {{non_goals}} ## Maintenance Notes -{{maintenance_notes}} \ No newline at end of file + + +{{maintenance_notes}} diff --git a/docs/templates/operations-doc.md b/docs/templates/operations-doc.md index 3f31b29..5f60267 100644 --- a/docs/templates/operations-doc.md +++ b/docs/templates/operations-doc.md @@ -2,7 +2,7 @@ status: active doc_type: behavior truth_kind: operations -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,48 +11,110 @@ source_of_truth: ## Purpose + + {{purpose}} ## Scope + + {{scope}} ## Operational Surface + + {{operational_surface}} ## Runtime Topology + + {{runtime_topology}} ## Configuration + + {{configuration}} ## Permissions + + {{permissions}} ## Deployment And Rollback + + {{deployment_and_rollback}} ## Availability And Observability + + {{availability_and_observability}} ## Product Decisions + + {{decision}} ## Rationale + + {{rationale}} ## Non-Goals + + {{non_goals}} ## Maintenance Notes -{{maintenance_notes}} \ No newline at end of file + + +{{maintenance_notes}} diff --git a/docs/templates/test-behavior-doc.md b/docs/templates/test-behavior-doc.md index 9be0efc..6e2ba02 100644 --- a/docs/templates/test-behavior-doc.md +++ b/docs/templates/test-behavior-doc.md @@ -2,7 +2,7 @@ status: active doc_type: behavior truth_kind: test-behavior -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,48 +11,110 @@ source_of_truth: ## Purpose + + {{purpose}} ## Scope + + {{scope}} ## Test Surface + + {{test_surface}} ## Fixtures And Data Model + + {{fixtures_and_data_model}} ## Execution Model + + {{execution_model}} ## Assertions And Invariants + + {{assertions_and_invariants}} ## Isolation Rules + + {{isolation_rules}} ## Reporting And Failure Semantics + + {{reporting_and_failure_semantics}} ## Product Decisions + + {{decision}} ## Rationale + + {{rationale}} ## Non-Goals + + {{non_goals}} ## Maintenance Notes -{{maintenance_notes}} \ No newline at end of file + + +{{maintenance_notes}} diff --git a/docs/templates/workflow-doc.md b/docs/templates/workflow-doc.md index d649463..8ab7542 100644 --- a/docs/templates/workflow-doc.md +++ b/docs/templates/workflow-doc.md @@ -2,7 +2,7 @@ status: active doc_type: behavior truth_kind: workflow -last_reviewed: 2026-05-14 +last_reviewed: 2026-05-30 source_of_truth: - {{source_of_truth}} --- @@ -11,48 +11,110 @@ source_of_truth: ## Purpose + + {{purpose}} ## Scope + + {{scope}} ## Triggers + + {{triggers}} ## Inputs + + {{inputs}} ## Execution Model + + {{execution_model}} ## Steps + + {{steps}} ## State, Retry, And Failure Behavior + + {{state_retry_and_failure_behavior}} ## Outputs + + {{outputs}} ## Product Decisions + + {{decision}} ## Rationale + + {{rationale}} ## Non-Goals + + {{non_goals}} ## Maintenance Notes -{{maintenance_notes}} \ No newline at end of file + + +{{maintenance_notes}} diff --git a/docs/truth/contracts.md b/docs/truth/contracts.md index cc6d196..ab9c5a0 100644 --- a/docs/truth/contracts.md +++ b/docs/truth/contracts.md @@ -117,7 +117,7 @@ Diagnostic fields: - `area`: optional area name from `docs/truthmark/areas.md` - `data`: optional machine-readable extras -Human-rendered output is intended for people. JSON output is the machine-facing contract. +Human-rendered output is intended for people. JSON output is the machine-facing contract. CLI invocations that render a `CommandResult` set a non-zero process exit code when any diagnostic has `severity: "error"`; `info`, `action`, and `review` diagnostics do not make the process fail. `truthmark index --json` returns `data.repoIndex` with `schemaVersion: repo-index/v0` and `data.routeMap` with `schemaVersion: route-map/v0`. diff --git a/docs/truth/init-and-scaffold.md b/docs/truth/init-and-scaffold.md index 3129ca1..555420e 100644 --- a/docs/truth/init-and-scaffold.md +++ b/docs/truth/init-and-scaffold.md @@ -160,7 +160,7 @@ Current scaffold targets: `instruction_targets` controls shared managed-instruction files such as `AGENTS.md`. These targets are written or refreshed whenever `truthmark init` runs with a valid config, independent of the configured platform list. `platforms` controls which platform-specific surfaces are written or refreshed. Defaults include all supported platforms: `codex`, `opencode`, `claude-code`, `github-copilot`, and `gemini-cli`. Teams should remove unused platforms from `.truthmark/config.yml` before rerunning `truthmark init`. Claude Code installs `CLAUDE.md`, project skills under `.claude/skills/`, and verifier plus leased doc-writer subagents under `.claude/agents/`; skills surface as `/truthmark-structure`, `/truthmark-document`, `/truthmark-sync`, `/truthmark-preview`, `/truthmark-realize`, and `/truthmark-check`, plus `/truthmark-portal` when Portal is enabled, while the generated project subagents provide bounded evidence checks and parent-leased truth-doc writes. GitHub Copilot installs `.github/copilot-instructions.md`, agent skills under `.github/skills/`, prompt files under `.github/prompts/`, and verifier plus leased doc-writer custom agents under `.github/agents/`; prompts and skills surface as `/truthmark-structure`, `/truthmark-document`, `/truthmark-sync`, `/truthmark-preview`, `/truthmark-realize`, and `/truthmark-check`, plus `/truthmark-portal` when Portal is enabled, in supported Copilot IDEs, while Copilot CLI can dispatch the generated `@truth-*` custom agents for bounded evidence checks or parent-leased doc shards. Gemini installs `GEMINI.md`, Agent Skills under `.gemini/skills/`, project-scoped TOML commands under `.gemini/commands/truthmark/`, and project subagents under `.gemini/agents/`; commands surface as `/truthmark:structure`, `/truthmark:document`, `/truthmark:sync`, `/truthmark:preview`, `/truthmark:realize`, and `/truthmark:check`, plus `/truthmark:portal` when Portal is enabled, in Gemini CLI and append `User focus or arguments: {{args}}` near the end of each TOML prompt. Unknown platform names are config errors. Removing a platform stops future refreshes for that platform, but `init` does not delete previously generated files. -`ensureRepoFile` is intentionally conservative: existing non-empty files are left alone. The AGENTS managed block is the exception because Truthmark owns that block and may refresh it to match current template behavior. +`ensureRepoFile` is intentionally conservative: existing non-empty scaffold files are left alone unless the file is one of Truthmark's managed update surfaces. Managed update surfaces include instruction blocks, generated workflow assets, and truth-doc templates under `docs/templates/*.md`; template reruns refresh Truthmark-owned default sections while preserving project-specific custom sections and their authored order. The generated Truth Structure, Truth Document, Truth Sync, Truth Preview, Truth Realize, and Truth Check explicit surfaces are also managed by Truthmark and may be refreshed on rerun so the Codex skills, metadata, Claude Code project skills, GitHub Copilot skills/prompts/custom agents, Gemini skills/commands/subagents, and OpenCode skills keep matching the installed workflow contract. Generated skill packages keep `SKILL.md` compact and write heavy procedure, report-template, and subagent or lease reference material into sibling `support/*.md` files. Optional helper manifests and helper policy files are emitted only for workflows that declare helpers and only for configured skill-package platforms; helper manifests invoke installed Truthmark CLI validators such as `truthmark validate sync-report --json`, `truthmark validate document-report --json`, and `truthmark validate write-lease --json`. Generated packages do not bundle repo-local `scripts/*.mjs` helper copies. GitHub Copilot prompts and Gemini commands remain standalone entrypoints; their report examples mark helper packages unavailable unless the matching generated skill package is being used. Generated skills, support files, Codex metadata, Copilot prompt files, Copilot custom-agent files, Gemini command files, Gemini subagent files, and managed instruction blocks include the Truthmark package version that rendered them; `package.json` is the single maintained version source. After upgrading Truthmark, rerun `truthmark init` and review generated workflow diffs. @@ -197,8 +197,8 @@ Hierarchy is configured in `.truthmark/config.yml`: `truthmark init` creates missing structure for that hierarchy, but child route files stay governed by the root route index: if an authored non-empty root index no longer delegates the configured default child route, rerunning init does not recreate that unreferenced child route. Init does not silently move, delete, or reinterpret existing truth docs when teams change the configured roots. Those cases produce review diagnostics for manual migration. The default scaffold treats truth `README.md` files as indexes. Current behavior truth belongs in bounded leaf docs under the configured truth root, such as `//.md`. -`truthmark init` creates [docs/templates/behavior-doc.md](../templates/behavior-doc.md) when it is missing or empty and also seeds [docs/templates/contract-doc.md](../templates/contract-doc.md), [docs/templates/architecture-doc.md](../templates/architecture-doc.md), [docs/templates/workflow-doc.md](../templates/workflow-doc.md), [docs/templates/operations-doc.md](../templates/operations-doc.md), and [docs/templates/test-behavior-doc.md](../templates/test-behavior-doc.md) when they are missing or empty. The default behavior template includes Purpose, Scope, Current Behavior, Core Rules, Flows And States, Contracts, Product Decisions, Rationale, Non-Goals, and Maintenance Notes sections, with inline scope criteria for agents. Kind-specific templates add the required anchors for contract, architecture, workflow, operations, and test-behavior truth surfaces. The default child route references the seeded leaf truth doc with fenced YAML `truth_documents` metadata and `kind: behavior` rather than relying on path inference. -When creating the default bounded behavior truth doc, init reads the repository's behavior template and expands supported placeholders such as `{{title}}`, `{{area}}`, `{{source_of_truth}}`, `{{purpose}}`, `{{scope}}`, `{{current_behavior}}`, `{{core_rules}}`, `{{flows_and_states}}`, `{{contracts}}`, `{{decision}}`, `{{rationale}}`, `{{non_goals}}`, `{{maintenance_notes}}`, and `{{template_path}}`. The seeded leaf uses `doc_type: behavior` and `truth_kind: behavior`. Existing non-empty template files are preserved so teams can define local truth-doc standards. +`truthmark init` creates [docs/templates/behavior-doc.md](../templates/behavior-doc.md) when it is missing or empty and refreshes all six templates under `docs/templates/*.md` on rerun. Template refreshes replace Truthmark-owned default sections with the current professional guidance baseline, including evidence, boundary, current-state, contract, operational, verification, decision, rationale, non-goal, and maintenance prompts. Existing template preambles/frontmatter are preserved so repository-owned metadata, custom titles, source-of-truth defaults, and local introductory guidance do not churn during section refresh. Project-specific custom `##` sections are preserved and reinserted before the next default section that followed them in the authored file; trailing custom sections remain trailing. Fenced code blocks are ignored while finding `##` template sections, so examples can contain Markdown headings without being split or mistaken for Truthmark-owned sections. The default child route references the seeded leaf truth doc with fenced YAML `truth_documents` metadata and `kind: behavior` rather than relying on path inference. +When creating the default bounded behavior truth doc, init reads the repository's merged behavior template and expands supported placeholders such as `{{title}}`, `{{area}}`, `{{source_of_truth}}`, `{{purpose}}`, `{{scope}}`, `{{current_behavior}}`, `{{core_rules}}`, `{{flows_and_states}}`, `{{contracts}}`, `{{decision}}`, `{{rationale}}`, `{{non_goals}}`, `{{maintenance_notes}}`, and `{{template_path}}`. The seeded leaf uses `doc_type: behavior` and `truth_kind: behavior`. Existing non-empty truth docs are preserved; existing template files are merged rather than blindly overwritten so teams can keep local truth-doc standard sections while receiving updated default guidance. ## Current Defaults @@ -206,7 +206,7 @@ Important current defaults: - default authority includes the canonical doc classes under `docs/` - default code surface in the scaffolded root and child route files starts as `src/**` -- default truth scaffolding creates an index at `/README.md`, an index at `//README.md`, six editable templates under `docs/templates/*.md`, and a bounded leaf truth doc at `//overview.md` routed through explicit `{ path, kind }` metadata +- default truth scaffolding creates an index at `/README.md`, an index at `//README.md`, six editable and refreshable templates under `docs/templates/*.md`, and a bounded leaf truth doc at `//overview.md` routed through explicit `{ path, kind }` metadata - default platforms are `codex`, `opencode`, `claude-code`, `github-copilot`, and `gemini-cli` - shared instruction targets are refreshed independently of platform-specific surfaces - explicit Truth Structure, Truth Document, Truth Sync, Truth Preview, Truth Realize, and Truth Check surfaces are installed only for configured platforms @@ -235,7 +235,7 @@ Current init JSON reporting uses: - all generated paths must remain inside the active repository root - generated path containment must reject symlinks that resolve outside the repository, including broken symlink leaves that would otherwise be created outside the worktree -- init must be idempotent for existing non-empty scaffold files except for the managed AGENTS block +- init must be idempotent for existing non-empty scaffold files except for managed update surfaces such as instruction blocks, generated workflow assets, and merged `docs/templates/*.md` default sections - the command should remain safe to run repeatedly in the same repository ## Product Decisions @@ -248,6 +248,7 @@ Current init JSON reporting uses: - Decision (2026-05-15): Repository instruction preambles make docs-map and onboarding reads conditional, and managed instruction blocks omit platform-specific workflow invocation strings so ordinary sessions load less context. - Decision (2026-05-13): `.truthmark/config.yml` and route files are the committed hierarchy contract, so init no longer creates a low-value top-level note. - Decision (2026-05-14): Truth-doc templates are kind-specific under `docs/templates/*.md`; `docs/templates/behavior-doc.md` is the default bounded behavior template and the other five typed templates carry kind-specific required sections. +- Decision (2026-05-30): `truthmark init` refreshes Truthmark-owned default sections in existing `docs/templates/*.md` files while preserving project-specific custom `##` sections and their authored relative order. - Decision (2026-05-14): Truth Realize stays manual-only through explicit generated surfaces and is no longer configurable with `realization.enabled`. - Decision (2026-05-13): Default standards define architecture docs as structure and ownership truth, not a place for ordinary product behavior. @@ -257,7 +258,7 @@ This split makes the hierarchy reviewable before generated workflow behavior lan Keeping host-specific detail in generated skills and Gemini command files prevents the repository root from accumulating parallel instruction files that drift from the managed workflow contract. Keeping managed blocks terse protects ordinary agent context while preserving the automatic Sync gate, workflow boundaries, and branch-local authority. Conditional docs-map and onboarding reads keep routing guidance available without forcing every normal session to load it. -Keeping typed truth-doc templates in `docs/templates/` gives repository owners one local standard surface per truth kind while keeping generated workflow text compact as more workflow surfaces are added. +Keeping typed truth-doc templates in `docs/templates/` gives repository owners one local standard surface per truth kind while keeping generated workflow text compact as more workflow surfaces are added. Refreshing default template sections on `truthmark init` keeps those local standard surfaces aligned with current professional guidance, while preserving custom sections prevents product-specific review gates from being erased by package upgrades. ## Primary Code Files diff --git a/package-lock.json b/package-lock.json index d781e56..dd22a93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "truthmark", - "version": "1.6.0", + "version": "1.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "truthmark", - "version": "1.6.0", + "version": "1.6.1", "license": "MIT", "dependencies": { "ajv": "^8.17.1", diff --git a/package.json b/package.json index 4249f7b..09e3f5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "truthmark", - "version": "1.6.0", + "version": "1.6.1", "description": "Git-native, branch-scoped truth workflow installer for local AI coding agents.", "license": "MIT", "type": "module", diff --git a/src/cli/program.ts b/src/cli/program.ts index 1a4fb1d..bc500f8 100644 --- a/src/cli/program.ts +++ b/src/cli/program.ts @@ -38,13 +38,21 @@ type ContextOptions = OutputOptions & { format?: string; }; +const markFailedWhenErrorDiagnosticsExist = (result: CommandResult): void => { + if (result.diagnostics.some((diagnostic) => diagnostic.severity === "error")) { + process.exitCode = 1; + } +}; + const writeResult = (result: CommandResult, options: OutputOptions): void => { const output = options.json ? renderJson(result) : renderHuman(result); process.stdout.write(`${output}\n`); + markFailedWhenErrorDiagnosticsExist(result); }; const writeContextResult = (result: CommandResult, options: ContextOptions): void => { if (!options.json && options.format === "markdown" && typeof result.data?.markdown === "string") { process.stdout.write(result.data.markdown); + markFailedWhenErrorDiagnosticsExist(result); return; } writeResult(result, options); diff --git a/src/init/hierarchy.ts b/src/init/hierarchy.ts index 74d901d..cb8b113 100644 --- a/src/init/hierarchy.ts +++ b/src/init/hierarchy.ts @@ -3,7 +3,7 @@ import fg from "fast-glob"; import { DEFAULT_DOCS_HIERARCHY } from "../config/defaults.js"; import type { TruthmarkConfig } from "../config/schema.js"; import type { FileWriteResult } from "../fs/paths.js"; -import { ensureRepoFile, resolveRepoPath } from "../fs/paths.js"; +import { ensureRepoFile, resolveRepoPath, writeRepoFile } from "../fs/paths.js"; import type { Diagnostic } from "../output/diagnostic.js"; import { parseAreasMarkdown } from "../routing/areas.js"; import { resolveTruthDocsRoot } from "../truth/docs.js"; @@ -15,6 +15,7 @@ import { TEST_BEHAVIOR_DOC_TEMPLATE_PATH, WORKFLOW_DOC_TEMPLATE_PATH, renderChildAreaTemplate, + mergeTruthDocTemplate, renderArchitectureDocTemplateFile, renderBehaviorDocTemplateFile, renderContractDocTemplateFile, @@ -70,6 +71,23 @@ const readBehaviorDocTemplate = async (rootDir: string): Promise => { } }; +const ensureOrUpdateTruthDocTemplate = async ( + rootDir: string, + templatePath: string, + defaultTemplate: string, +): Promise => { + const seededResult = await ensureRepoFile(rootDir, templatePath, defaultTemplate); + + if (seededResult.status !== "unchanged") { + return seededResult; + } + + const existingTemplate = await fs.readFile(resolveRepoPath(rootDir, templatePath), "utf8"); + const mergedTemplate = mergeTruthDocTemplate(existingTemplate, defaultTemplate); + + return writeRepoFile(rootDir, templatePath, mergedTemplate); +}; + export const scaffoldHierarchy = async ( rootDir: string, config: TruthmarkConfig, @@ -106,26 +124,42 @@ export const scaffoldHierarchy = async ( ), ); results.push( - await ensureRepoFile(rootDir, BEHAVIOR_DOC_TEMPLATE_PATH, renderBehaviorDocTemplateFile()), + await ensureOrUpdateTruthDocTemplate( + rootDir, + BEHAVIOR_DOC_TEMPLATE_PATH, + renderBehaviorDocTemplateFile(), + ), ); results.push( - await ensureRepoFile(rootDir, CONTRACT_DOC_TEMPLATE_PATH, renderContractDocTemplateFile()), + await ensureOrUpdateTruthDocTemplate( + rootDir, + CONTRACT_DOC_TEMPLATE_PATH, + renderContractDocTemplateFile(), + ), ); results.push( - await ensureRepoFile( + await ensureOrUpdateTruthDocTemplate( rootDir, ARCHITECTURE_DOC_TEMPLATE_PATH, renderArchitectureDocTemplateFile(), ), ); results.push( - await ensureRepoFile(rootDir, WORKFLOW_DOC_TEMPLATE_PATH, renderWorkflowDocTemplateFile()), + await ensureOrUpdateTruthDocTemplate( + rootDir, + WORKFLOW_DOC_TEMPLATE_PATH, + renderWorkflowDocTemplateFile(), + ), ); results.push( - await ensureRepoFile(rootDir, OPERATIONS_DOC_TEMPLATE_PATH, renderOperationsDocTemplateFile()), + await ensureOrUpdateTruthDocTemplate( + rootDir, + OPERATIONS_DOC_TEMPLATE_PATH, + renderOperationsDocTemplateFile(), + ), ); results.push( - await ensureRepoFile( + await ensureOrUpdateTruthDocTemplate( rootDir, TEST_BEHAVIOR_DOC_TEMPLATE_PATH, renderTestBehaviorDocTemplateFile(), diff --git a/src/templates/init-files.ts b/src/templates/init-files.ts index 74ea2c4..56c6238 100644 --- a/src/templates/init-files.ts +++ b/src/templates/init-files.ts @@ -212,6 +212,144 @@ export const WORKFLOW_DOC_TEMPLATE_PATH = "docs/templates/workflow-doc.md"; export const OPERATIONS_DOC_TEMPLATE_PATH = "docs/templates/operations-doc.md"; export const TEST_BEHAVIOR_DOC_TEMPLATE_PATH = "docs/templates/test-behavior-doc.md"; +type TemplateSectionSpec = { + heading: string; + placeholder: string; + guidance: string[]; +}; + +type ParsedTemplateSection = { + heading: string; + block: string; +}; + +const renderTemplateSection = (section: TemplateSectionSpec): string[] => { + return [ + section.heading, + "", + "", + "", + `{{${section.placeholder}}}`, + "", + ]; +}; + +const titleToPlaceholder = (title: string): string => { + return title + .replace(/^#+\s+/u, "") + .toLowerCase() + .replaceAll(/[^a-z0-9]+/g, "_") + .replace(/^_+|_+$/g, ""); +}; + +const findTemplateSectionHeadings = (template: string): Array<{ heading: string; index: number }> => { + const matches: Array<{ heading: string; index: number }> = []; + let fencedCodeMarker: "`" | "~" | null = null; + let fencedCodeLength = 0; + + for (const lineMatch of template.matchAll(/^.*(?:\r?\n|$)/gm)) { + const rawLine = lineMatch[0]; + if (rawLine.length === 0) { + continue; + } + + const line = rawLine.replace(/\r?\n$/u, ""); + const fenceMatch = /^(?: {0,3})(`{3,}|~{3,})/u.exec(line); + + if (fenceMatch) { + const marker = fenceMatch[1]?.[0] as "`" | "~"; + const length = fenceMatch[1]?.length ?? 0; + + if (fencedCodeMarker === null) { + fencedCodeMarker = marker; + fencedCodeLength = length; + } else if (marker === fencedCodeMarker && length >= fencedCodeLength) { + fencedCodeMarker = null; + fencedCodeLength = 0; + } + + continue; + } + + if (fencedCodeMarker === null && /^## .+$/u.test(line)) { + matches.push({ heading: line.trim(), index: lineMatch.index }); + } + } + + return matches; +}; + +const parseTemplateSections = (template: string): { preamble: string; sections: ParsedTemplateSection[] } => { + const matches = findTemplateSectionHeadings(template); + + if (matches.length === 0) { + return { preamble: template.trimEnd(), sections: [] }; + } + + const sections = matches.map((match, index) => { + const start = match.index; + const next = matches[index + 1]; + const end = next?.index ?? template.length; + + return { + heading: match.heading, + block: template.slice(start, end).trimEnd(), + }; + }); + + return { + preamble: template.slice(0, matches[0]?.index ?? 0).trimEnd(), + sections, + }; +}; + +export const mergeTruthDocTemplate = (existingTemplate: string, defaultTemplate: string): string => { + if (existingTemplate.trim().length === 0) { + return defaultTemplate; + } + + const defaultParsed = parseTemplateSections(defaultTemplate); + const existingParsed = parseTemplateSections(existingTemplate); + const defaultHeadings = new Set(defaultParsed.sections.map((section) => section.heading)); + const customBeforeDefault = new Map(); + const trailingCustomSections: ParsedTemplateSection[] = []; + + existingParsed.sections.forEach((section, index) => { + if (defaultHeadings.has(section.heading)) { + return; + } + + const nextDefaultSection = existingParsed.sections + .slice(index + 1) + .find((candidate) => defaultHeadings.has(candidate.heading)); + + if (nextDefaultSection) { + const bucket = customBeforeDefault.get(nextDefaultSection.heading) ?? []; + bucket.push(section); + customBeforeDefault.set(nextDefaultSection.heading, bucket); + return; + } + + trailingCustomSections.push(section); + }); + + const mergedSections = defaultParsed.sections.flatMap((section) => [ + ...(customBeforeDefault.get(section.heading) ?? []), + section, + ]); + + return [ + existingParsed.preamble, + ...mergedSections.map((section) => section.block), + ...trailingCustomSections.map((section) => section.block), + "", + ] + .filter((block) => block.length > 0) + .join("\n\n"); +}; + export const renderBehaviorDocTemplateFile = (): string => { return [ "---", @@ -227,92 +365,147 @@ export const renderBehaviorDocTemplateFile = (): string => { "", "## Purpose", "", - "", + "", "", "{{purpose}}", "", "## Scope", "", - "{{scope}}", - "", "", "", + "{{scope}}", + "", "This doc was created from the editable behavior-doc template at {{template_path}}.", "", "## Current Behavior", "", - "", + "", "", "{{current_behavior}}", "", "## Core Rules", "", - "", + "", "", "{{core_rules}}", "", "## Flows And States", "", - "", + "", "", "{{flows_and_states}}", "", "## Contracts", "", - "", + "", "", "{{contracts}}", "", "## Product Decisions", "", - "", + "", "", "{{decision}}", "", "## Rationale", "", - "", + "", "", "{{rationale}}", "", "## Non-Goals", "", - "", + "", "", "{{non_goals}}", "", "## Maintenance Notes", "", - "", + "", "", "{{maintenance_notes}}", "", ].join("\n"); }; +const sectionSpec = ( + heading: string, + guidance: string[], + placeholder = titleToPlaceholder(heading), +): TemplateSectionSpec => ({ heading, guidance, placeholder }); + +const PURPOSE_SECTION = sectionSpec("## Purpose", [ + "State the software-engineering outcome this document protects and why the documented surface exists.", + "Include durable value, impacted users/systems, and the problem boundary; exclude roadmap, implementation plans, and historical narrative.", + "Keep claims traceable to source_of_truth evidence rather than prose-only assertion.", +]); + +const SCOPE_SECTION = sectionSpec("## Scope", [ + "Define the one coherent surface this document owns, including actors, entrypoints, owned state/data, and handoffs to neighboring truth docs.", + "Call out important out-of-scope boundaries here or in Non-Goals; split the doc when it mixes distinct outcomes, lifecycles, contracts, or owners.", +]); + +const PRODUCT_DECISIONS_SECTION = sectionSpec("## Product Decisions", [ + "Keep active decisions only, dated inline when added or changed.", + "Capture decisions that shape behavior, interfaces, boundaries, compatibility, risk acceptance, or migration constraints.", + "Replace stale decisions instead of appending historical logs.", +], "decision"); + +const RATIONALE_SECTION = sectionSpec("## Rationale", [ + "Explain why the current behavior, structure, or contract is this way, including tradeoffs and constraints.", + "Tie rationale to evidence-backed facts and active decisions; do not use this as a changelog.", +]); + +const NON_GOALS_SECTION = sectionSpec("## Non-Goals", [ + "Name adjacent behavior, responsibilities, interfaces, or future expansions this doc intentionally does not own.", + "Use this section to prevent scope creep and duplicate truth ownership.", +]); + +const MAINTENANCE_NOTES_SECTION = sectionSpec("## Maintenance Notes", [ + "List related tests, routing cautions, migration notes, compatibility risks, evidence drift risks, and review triggers for future maintainers or agents.", + "Keep this operational and current-state focused, not historical.", +]); + const renderTypedTruthDocTemplate = ( truthKind: string, docType: string, title: string, - sections: string[], + sections: TemplateSectionSpec[], ): string => { - const placeholderNameForSection = (section: string): string => { - return section - .replace(/^#+\s+/u, "") - .toLowerCase() - .replaceAll(/[^a-z0-9]+/g, "_") - .replace(/^_+|_+$/g, ""); - }; - return [ "---", "status: active", @@ -325,91 +518,158 @@ const renderTypedTruthDocTemplate = ( "", `# ${title}`, "", - "## Purpose", - "", - "{{purpose}}", - "", - "## Scope", - "", - "{{scope}}", - "", - ...sections.flatMap((section) => [ - section, - "", - `{{${placeholderNameForSection(section)}}}`, - "", - ]), - "## Product Decisions", - "", - "{{decision}}", - "", - "## Rationale", - "", - "{{rationale}}", - "", - "## Non-Goals", - "", - "{{non_goals}}", - "", - "## Maintenance Notes", - "", - "{{maintenance_notes}}", - "", + ...renderTemplateSection(PURPOSE_SECTION), + ...renderTemplateSection(SCOPE_SECTION), + ...sections.flatMap(renderTemplateSection), + ...renderTemplateSection(PRODUCT_DECISIONS_SECTION), + ...renderTemplateSection(RATIONALE_SECTION), + ...renderTemplateSection(NON_GOALS_SECTION), + ...renderTemplateSection(MAINTENANCE_NOTES_SECTION), ].join("\n"); }; export const renderContractDocTemplateFile = (): string => { return renderTypedTruthDocTemplate("contract", "contract", "{{title}}", [ - "## Contract Surface", - "## Inputs", - "## Outputs", - "## Errors And Diagnostics", - "## Compatibility Rules", - "## Versioning And Migration", + sectionSpec("## Contract Surface", [ + "Identify the owned API, CLI, file format, event, protocol, permission boundary, or integration surface.", + "State consumers/producers, stability level, and the source files/tests that define the contract.", + ]), + sectionSpec("## Inputs", [ + "Document accepted parameters, payloads, files, environment/config keys, permissions, and validation rules.", + "Include required/optional status, defaults, constraints, and normalization behavior.", + ]), + sectionSpec("## Outputs", [ + "Document returned values, emitted files/events, state changes, side effects, and success diagnostics.", + "Make externally observable behavior explicit enough for compatibility review.", + ]), + sectionSpec("## Errors And Diagnostics", [ + "List error classes, exit/status codes, user-facing diagnostics, retries, and recoverability expectations.", + "Distinguish validation errors, dependency failures, authorization failures, and internal faults when applicable.", + ]), + sectionSpec("## Compatibility Rules", [ + "State backward/forward compatibility guarantees, tolerated inputs, deprecation rules, and breaking-change triggers.", + "Include compatibility tests or review gates that protect the contract.", + ]), + sectionSpec("## Versioning And Migration", [ + "Document version negotiation, schema/API version fields, rollout requirements, migration steps, and rollback expectations.", + "State 'Not versioned' only when the implementation truly has no versioning or migration surface.", + ]), ]); }; export const renderArchitectureDocTemplateFile = (): string => { return renderTypedTruthDocTemplate("architecture", "architecture", "{{title}}", [ - "## System Role", - "## Boundaries", - "## Components", - "## Data And Control Flow", - "## Ownership", - "## Cross-Cutting Constraints", + sectionSpec("## System Role", [ + "Describe the current architectural role of this subsystem/component in the larger system.", + "State the primary responsibilities, consumers, providers, and why this boundary exists now.", + ]), + sectionSpec("## Boundaries", [ + "Define owned code/config/data, external dependencies, trust boundaries, and interfaces crossed by this architecture.", + "Name what is deliberately outside the boundary and link neighboring architecture or contract docs when they own it.", + ]), + sectionSpec("## Components", [ + "List the major runtime/build-time components, modules, services, jobs, or generated artifacts and their responsibilities.", + "Keep the component list current and evidence-backed; avoid speculative target architecture.", + ]), + sectionSpec("## Data And Control Flow", [ + "Describe important data movement, command/control paths, synchronization points, state ownership, and failure paths.", + "Call out persistence, queues, caches, external calls, and security-sensitive transitions where relevant.", + ]), + sectionSpec("## Ownership", [ + "Document team/module ownership, review responsibility, operational responsibility, and escalation paths if known.", + "If ownership is inferred from codeowners, config, or repository structure, cite that evidence.", + ]), + sectionSpec("## Cross-Cutting Constraints", [ + "Record active constraints such as security, privacy, reliability, performance, portability, maintainability, compliance, and cost.", + "Tie constraints to source evidence, tests, standards, or operational requirements where available.", + ]), ]); }; export const renderWorkflowDocTemplateFile = (): string => { return renderTypedTruthDocTemplate("workflow", "behavior", "{{title}}", [ - "## Triggers", - "## Inputs", - "## Execution Model", - "## Steps", - "## State, Retry, And Failure Behavior", - "## Outputs", + sectionSpec("## Triggers", [ + "List events, commands, schedules, user actions, webhooks, or dependency signals that start this workflow.", + "Include preconditions, authorization requirements, debounce/coalescing behavior, and disabled states when applicable.", + ]), + sectionSpec("## Inputs", [ + "Document data, files, config, context, credentials, and environmental assumptions consumed by the workflow.", + "Include validation, defaults, and normalization that happen before execution.", + ]), + sectionSpec("## Execution Model", [ + "Describe synchronous/asynchronous execution, concurrency, locking, leases, batching, ordering, and idempotency behavior.", + "State whether the workflow is user-blocking, background, distributed, or delegated to another system.", + ]), + sectionSpec("## Steps", [ + "Capture the current ordered steps or phases at a level useful for maintenance and review.", + "Reference implementation entrypoints instead of duplicating line-by-line code behavior.", + ]), + sectionSpec("## State, Retry, And Failure Behavior", [ + "Document state transitions, retries, timeouts, compensation, fallback, partial-success, and terminal-failure behavior.", + "Make externally visible failure semantics and recovery responsibilities clear.", + ]), + sectionSpec("## Outputs", [ + "List artifacts, state changes, notifications, logs, metrics, diagnostics, and downstream triggers produced by the workflow.", + "Include success criteria and handoff points to other truth docs or systems.", + ]), ]); }; export const renderOperationsDocTemplateFile = (): string => { return renderTypedTruthDocTemplate("operations", "behavior", "{{title}}", [ - "## Operational Surface", - "## Runtime Topology", - "## Configuration", - "## Permissions", - "## Deployment And Rollback", - "## Availability And Observability", + sectionSpec("## Operational Surface", [ + "Describe what operators, maintainers, or automated systems can observe or control for this surface.", + "Include commands, dashboards, alerts, runbooks, jobs, or operational APIs that define current operations.", + ]), + sectionSpec("## Runtime Topology", [ + "Document services, processes, containers, hosts, regions, dependencies, queues, stores, and network boundaries involved at runtime.", + "State single-node/local behavior explicitly when there is no distributed topology.", + ]), + sectionSpec("## Configuration", [ + "List operational config, environment variables, feature flags, secrets references, defaults, and reload/restart requirements.", + "Do not include secret values; describe storage and rotation expectations instead.", + ]), + sectionSpec("## Permissions", [ + "Document required identities, roles, scopes, filesystem/network permissions, and least-privilege boundaries.", + "Include user-facing authorization behavior and operator access requirements when relevant.", + ]), + sectionSpec("## Deployment And Rollback", [ + "Describe deployment mechanism, migration ordering, compatibility windows, rollback path, and known irreversible operations.", + "Call out manual gates, smoke checks, and post-deploy verification responsibilities.", + ]), + sectionSpec("## Availability And Observability", [ + "Capture availability expectations, health checks, metrics, logs, traces, alerts, SLO/error-budget signals, and known blind spots.", + "Include what maintainers should inspect first during incidents or degraded behavior.", + ]), ]); }; export const renderTestBehaviorDocTemplateFile = (): string => { return renderTypedTruthDocTemplate("test-behavior", "behavior", "{{title}}", [ - "## Test Surface", - "## Fixtures And Data Model", - "## Execution Model", - "## Assertions And Invariants", - "## Isolation Rules", - "## Reporting And Failure Semantics", + sectionSpec("## Test Surface", [ + "Define the behavior, contract, architecture, or workflow surface these tests verify.", + "Link the canonical truth docs and code paths the tests are meant to protect.", + ]), + sectionSpec("## Fixtures And Data Model", [ + "Document fixtures, factories, seeds, mocks/fakes, test repositories, external-service substitutes, and data lifecycle rules.", + "Include cleanup, determinism, privacy, and cross-test contamination constraints.", + ]), + sectionSpec("## Execution Model", [ + "Describe how tests run: command, framework, parallelism, isolation, network/filesystem assumptions, and required services.", + "State whether tests are unit, integration, e2e, contract, smoke, regression, or generated checks.", + ]), + sectionSpec("## Assertions And Invariants", [ + "List the critical assertions, invariants, failure modes, and negative cases that make the tests meaningful.", + "Tie assertions to product/contract rules rather than incidental implementation details.", + ]), + sectionSpec("## Isolation Rules", [ + "Document transaction boundaries, temp directories, fake clocks, network blocking, shared resources, and teardown rules.", + "Call out known order dependencies or flake risks and how they are controlled.", + ]), + sectionSpec("## Reporting And Failure Semantics", [ + "Describe diagnostics, snapshots, logs, coverage signals, retry policy, and how maintainers should interpret failures.", + "Include escalation or quarantine criteria for flaky or environment-sensitive tests.", + ]), ]); }; diff --git a/tests/cli/index-impact-context.test.ts b/tests/cli/index-impact-context.test.ts index f3c7703..296b841 100644 --- a/tests/cli/index-impact-context.test.ts +++ b/tests/cli/index-impact-context.test.ts @@ -114,6 +114,7 @@ describe("repository intelligence CLI commands", () => { diagnostics: Array<{ category: string; severity: string; message: string }>; }; + expect(result.exitCode).toBe(1); expect(output.diagnostics).toContainEqual( expect.objectContaining({ category: "context-pack", diff --git a/tests/init/init.test.ts b/tests/init/init.test.ts index 0ecef96..a9e46bd 100644 --- a/tests/init/init.test.ts +++ b/tests/init/init.test.ts @@ -105,7 +105,10 @@ describe("runInit", () => { "## Current Behavior", ); expect(await repo.readFile("docs/templates/behavior-doc.md")).toContain( - "## Scope\n\n{{scope}}", + "## Scope", + ); + expect(await repo.readFile("docs/templates/behavior-doc.md")).toContain( + "{{scope}}", ); expect(await repo.readFile("docs/templates/behavior-doc.md")).toContain( "## Core Rules", @@ -1040,6 +1043,162 @@ Custom template for {{area}}. } }); + it("updates default truth doc template sections while preserving custom preamble and section order", async () => { + const repo = await createTempRepo(); + + try { + await runConfig(repo.rootDir, {}); + await repo.writeFile( + "docs/templates/behavior-doc.md", + `--- +status: active +doc_type: behavior +truth_kind: behavior +last_reviewed: 2026-05-12 +owner: local-platform +source_of_truth: + - docs/local-source.md +--- + +# Custom {{title}} Template + +Local introduction that should remain before managed sections. + +## Purpose + +Old local purpose copy that should be replaced. + +## Team Notes Before Scope + +Keep this project-specific section before Scope. + +\`\`\`markdown +## Contracts +\`\`\` + +This fenced heading example should remain part of the custom section. + +## Scope + +Old local scope copy that should be replaced. + +## Current Behavior + +Old current-behavior copy that should be replaced. + +## Domain Vocabulary + +Keep this project-specific section before Core Rules. + +## Core Rules + +Old core-rules copy that should be replaced. + +## Maintenance Notes + +Old maintenance copy that should be replaced. + +## Local Appendices + +Keep this project-specific trailing section. +`, + ); + + await runInit(repo.rootDir); + + const updatedTemplate = await repo.readFile("docs/templates/behavior-doc.md"); + + expect(updatedTemplate).toContain( + "State the user/system outcome this behavior protects and why it exists.", + ); + expect(updatedTemplate).toContain("owner: local-platform"); + expect(updatedTemplate).toContain(" - docs/local-source.md"); + expect(updatedTemplate).toContain("# Custom {{title}} Template"); + expect(updatedTemplate).toContain( + "Local introduction that should remain before managed sections.", + ); + expect(updatedTemplate).toContain( + "Split into another leaf doc when content introduces a distinct outcome", + ); + expect(updatedTemplate).not.toContain("Old local purpose copy"); + expect(updatedTemplate).not.toContain("Old local scope copy"); + expect(updatedTemplate).not.toContain("Old current-behavior copy"); + expect(updatedTemplate).not.toContain("Old core-rules copy"); + expect(updatedTemplate).not.toContain("Old maintenance copy"); + expect(updatedTemplate).toContain("## Team Notes Before Scope"); + expect(updatedTemplate).toContain("```markdown\n## Contracts\n```"); + expect(updatedTemplate).toContain( + "This fenced heading example should remain part of the custom section.", + ); + expect(updatedTemplate).toContain("## Domain Vocabulary"); + expect(updatedTemplate).toContain("## Local Appendices"); + + const headingOrder = [ + "## Purpose", + "## Team Notes Before Scope", + "## Scope", + "## Current Behavior", + "## Domain Vocabulary", + "## Core Rules", + "## Maintenance Notes", + "## Local Appendices", + ].map((heading) => updatedTemplate.indexOf(heading)); + + expect(headingOrder.every((index) => index >= 0)).toBe(true); + expect(headingOrder).toEqual([...headingOrder].sort((left, right) => left - right)); + } finally { + await repo.cleanup(); + } + }); + + it("preserves custom preambles across every truth doc template on rerun", async () => { + const repo = await createTempRepo(); + const templatePaths = [ + "docs/templates/behavior-doc.md", + "docs/templates/contract-doc.md", + "docs/templates/architecture-doc.md", + "docs/templates/workflow-doc.md", + "docs/templates/operations-doc.md", + "docs/templates/test-behavior-doc.md", + ]; + + try { + await runConfig(repo.rootDir, {}); + await runInit(repo.rootDir); + + for (const templatePath of templatePaths) { + const template = await repo.readFile(templatePath); + const customPreamble = [ + "---", + "status: active", + "owner: local-platform", + `template_path: ${templatePath}`, + "---", + "", + `# Local Template For ${templatePath}`, + "", + "Repository-specific introductory guidance.", + "", + ].join("\n"); + await repo.writeFile( + templatePath, + template.replace(/^[\s\S]*?(?=^## )/mu, customPreamble), + ); + } + + await runInit(repo.rootDir); + + for (const templatePath of templatePaths) { + const updatedTemplate = await repo.readFile(templatePath); + expect(updatedTemplate).toContain(`template_path: ${templatePath}`); + expect(updatedTemplate).toContain(`# Local Template For ${templatePath}`); + expect(updatedTemplate).toContain("Repository-specific introductory guidance."); + } + } finally { + await repo.cleanup(); + } + }); + it("rejects a broken behavior-doc template symlink that would write outside the repo", async () => { const repo = await createTempRepo(); const outsideTemplatePath = path.resolve(