Compare commits

..
30 Commits
Author SHA1 Message Date
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
0f048bf1de chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#40)
Bumps the npm_and_yarn group with 2 updates in the / directory: [fast-uri](https://github.com/fastify/fast-uri) and [js-yaml](https://github.com/nodeca/js-yaml).


Updates `fast-uri` from 3.1.4 to 3.1.5
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5)

Updates `js-yaml` from 4.3.0 to 4.3.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.3.0...4.3.1)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: js-yaml
  dependency-version: 4.3.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-19 16:35:24 +10:00
MerlinH 5050eb0fb7 docs: replace README diagram with responsive visual 2026-08-02 03:25:27 +10:00
MerlinH b1655b6e4a docs: refresh README storefront 2026-08-02 03:25:27 +10:00
e3edcc8afa feat: v2.3.0 add interactive platform selection to init (#38)
* feat: add interactive platform selection to init

* chore: remove completed OpenSpec artifacts

* chore: remove implemented design note

* fix: protect init lifecycle from unsafe config paths

* fix: support clearing init platforms from CLI

* docs: retire config command from repository rules

* docs: align init lifecycle and clear-platform contracts

* docs: keep repository guidance current-state focused

* docs: limit cleanup to repository-native documents

* docs: preserve historical version notes

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-07-31 18:54:10 +10:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
d88e4eb16d chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#35)
Bumps the npm_and_yarn group with 2 updates in the / directory: [fast-uri](https://github.com/fastify/fast-uri) and [js-yaml](https://github.com/nodeca/js-yaml).


Updates `fast-uri` from 3.1.2 to 3.1.4
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.4)

Updates `js-yaml` from 4.2.0 to 4.3.0
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.2.0...4.3.0)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: js-yaml
  dependency-version: 4.3.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-30 23:03:23 +10:00
MerlinH c067e3e99f feat(site): add responsive tabbed product guide 2026-07-28 09:27:55 +10:00
MerlinH bfee763ab2 feat: compact workflow status context 2026-07-27 00:19:37 +10:00
dependabot[bot]andMerlinH 72e6117cf4 chore(deps-dev): bump brace-expansion
Bumps the npm_and_yarn group with 1 update in the / directory: [brace-expansion](https://github.com/juliangruber/brace-expansion).


Updates `brace-expansion` from 1.1.15 to 1.1.16
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.15...v1.1.16)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.16
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 23:06:59 +10:00
c92b46ad65 feat: harden init routing and generated lifecycle (#33)
* feat: harden init routing and generated lifecycle

* test: align restored coverage with platform routing

* docs: translate localized uninstall guidance

* test: complete init routing and lifecycle coverage

* docs: record completed OpenSpec tasks

* chore: archive implemented init lifecycle OpenSpec change

* chore: remove OpenSpec configuration

* docs: clarify platform omission reconciliation

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-07-12 20:48:09 +10:00
Merlin's CatGitHubCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>MerlinHCopilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
9fa9ac25a4 feat: add workflow eval framework (#32)
* feat: add workflow eval framework

Add workflow evaluation scenarios, rubrics, schemas, and runner scripts for installed Truthmark workflows.

Move research notes under docs/research and migrate tests from Vitest to node:test.

* Potential fix for pull request finding 'CodeQL / Replacement of a substring with itself'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-06-30 20:57:55 +10:00
MerlinH 98061f7456 site: improve mobile layout 2026-06-27 01:47:11 +10:00
MerlinH 932a08ed93 ci: remove openssf scorecard 2026-06-27 01:23:24 +10:00
3c52f21d90 feat: add static introduction website (#29)
* feat: add static introduction website

* feat: expand static website positioning

* feat: redesign site with original visuals

* docs(readme): add package status badges

* ci: add project readiness automation

* ci: restrict scorecard workflow permissions

* ci: remove duplicate readiness config

* ci: pin workflow actions by sha

* docs: add scorecard badge

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-27 01:15:39 +10:00
15b8bb94e9 chore: prepare Truthmark 2.2.6 (#28)
* feat: add compact truth-doc prose guidance

* chore: prepare Truthmark 2.2.6

* fix: preserve truth doc line discipline

* docs: emphasize ongoing truth curation

* docs(truth): add behavior scenarios to truth docs

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-27 00:05:15 +10:00
MerlinH f599b15238 fix: publish npm from release tags 2026-06-22 18:07:08 +10:00
7e60fbce68 chore: prepare Truthmark 2.2.5 (#26)
Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-22 03:28:02 +10:00
MerlinH 07cbf9b003 chore: migrate pending README and agent rule updates 2026-06-21 01:53:40 +10:00
1ae5ee6d15 chore: refresh generated surfaces and release 2.2.4 (#24)
* docs: move localized READMEs to docs and update packaging

* chore: remove OpenSpec preview and Gemini artifacts

* fix: resolve localized README merge artifacts

* chore: rename pt-BR localized README to pt

* chore: refresh generated surfaces and change log for release 2.2.4

* fix: reformat 2.2.4 change log entry

* chore: rename 2.2.4 changelog note

* fix: refresh localized README translations and links

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-21 01:16:10 +10:00
MerlinH 47989f2dc0 docs: move localized READMEs to docs and update packaging 2026-06-20 21:52:59 +10:00
c70b957149 docs: update README quick start and AI workflow examples (#22)
* docs: update README quick start and quick-start workflows

* docs: expand README language support list

* docs: add missing localized README links and files

* docs: update localized READMEs with complete synchronized content

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-20 20:59:05 +10:00
MerlinH 724f4aa60a docs: cite docs/ai/repo-rules.md in local instruction files 2026-06-20 20:22:08 +10:00
452f5eeafc refactor: simplify Truthmark workflow surfaces (#20)
* refactor: simplify Truthmark workflow surfaces

* fix: limit Preview workflow surfaces to supported hosts

* docs(truthmark): sync diff-friendly truth docs

* fix: prune retired generated surfaces

* fix: prune retired generated workflow surfaces

* docs: update truthmark architecture and runtime behavior notes

* chore: bump version to 2.2.3

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-20 20:14:07 +10:00
fb2c469005 feat: add canonical agent workflow package (#19)
* feat: add Truth Sync intent checklist

* feat: add canonical agent workflow package

Add the .truthmark/agent canonical workflow package, convert duplicated host workflow bodies into adapter/expanded-adapter surfaces, and validate canonical/adapter freshness in Truthmark check.

Refresh generated surfaces and package metadata for Truthmark 2.3.0, with OpenSpec tasks completed and release notes added.

* fix: preserve native workflow skill packages

* docs: record native skill package decision

* fix: drop unused agent workflow package

* chore: remove implemented OpenSpec docs

* chore: release workflow fixes as 2.2.2

* fix: remove agent-visible version markers

* fix: drop generated surface version markers

* feat: capture decision context in Truth Sync

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-18 17:07:40 +10:00
e9cd67f0b5 refactor: remove semantic repository index (#17)
* docs: replace legacy truth path references

* feat: fold contextpack into workflow status

* refactor: remove semantic repository index

* fix: remove vulnerable frontmatter dependency

* feat: broaden truth sync write authorization

* test: restore workflow state regression coverage

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-16 11:03:04 +10:00
32cfafa9c2 chore: refresh npm dependencies (#16)
Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-16 00:55:23 +10:00
2dc0da40ff chore: refresh Truthmark to 2.2.0 (#15)
* Split Truthmark product and engineering truth lanes

* chore: align truthmark docs and runtime with lane updates

* chore: bump package version to 2.2.0

* chore: refresh truthmark surfaces for 2.2.0 and document release

* chore: migrate legacy truth docs to engineering legacy path

* chore: remove legacy docs/truth legacy docs from repository

* chore: trim document command prompts to adapter stubs

* chore: customize truth root README guidance per lane

* chore: make doc reviewer guidance lane-specific and helper-rendered

* fix: remove duplicate check lane-classification render in evidence gate

* fix: make realize doc example lane-agnostic to product and engineering

* feat: separate product and engineering truth lanes

* test: restore workflow surface coverage

* Fix workflow lane prompt boundaries

* test: guard read-only generated surface wording

* Fix manual Realize lane guidance

* fix: harden route relationship diagnostics

Validate reciprocal product and engineering route links, gate missing product-link review diagnostics on product evidence, and reject duplicate route entries with divergent relationship metadata.

* fix: merge duplicate route relationships

Allow repeated route entries for the same truth document, kind, and lane to contribute additive relationship metadata. Keep hard validation errors for kind and lane conflicts and emit merged relationships in RouteMap output.

* fix: make route relationships local

Treat realized_by and realizes metadata as route-local navigation edges. Validate target existence and lane compatibility without requiring reciprocal declarations, and document the chosen semantics.

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-16 00:54:46 +10:00
7e68f5d216 docs: polish localized READMEs (#14)
* docs: polish localized readmes

* docs: remove stale future and research notes

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-13 05:02:17 +10:00
a083b703fa feat: add Truthmark health scorecard and bounded workflow contracts (#13)
* feat: add OpenSpec-driven workflow state

* docs: plan generated playbooks workflow contract

* feat: add truth health scorecard

Release Truthmark 2.1.0 with check JSON scorecard output.

Archive the completed OpenSpec pass 4 scorecard change and update generated truth surfaces.

* fix: unblock truthmark scorecard review

- restore and update coverage for scorecard/evidence/workflow behavior
- make truthmark-sync select a cheap local base when --base is omitted
- report malformed evidence YAML blocks as diagnostics instead of throwing

* fix: tighten workflow boundaries

* fix: fail closed when sync has no comparison base

* fix: tighten truth health review coverage

- only parse fenced YAML evidence blocks with top-level evidence markers
- convert coverage fixtures to valid v2 config and assert non-vacuous diagnostics
- update Truthmark truth docs for source traceability and workflow-state tests

* docs: clarify source traceability diagnostics

* docs: harden optional CLI workflow boundary

* docs: clarify product boundary is repo-local

* fix: bound truthmark workflow fallback behavior

- make live workflow preflight use the one-call instructions contract
- keep missing-CLI fallback bounded for Sync, Document, Structure, and Realize
- add routing and generated-surface coverage plus refreshed host surfaces

* test: cover no-cli workflow fallback bounds

- assert route-first fallback wording in generated workflow surfaces
- clarify progressive-disclosure support files are conditional
- align overview docs with bounded no-CLI behavior

* docs: route workflow eval coverage

* fix: remove workflow instructions preflight

* fix: remove stale workflow preflight wording

* fix: remove generic workflow validation blocks

* fix: avoid duplicated markdown context JSON

* fix: keep workflow status manifest-only

* docs: align truth docs with v2 hierarchy

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-06-13 04:09:45 +10:00
aa6442bba9 docs: align truth docs with templates (#12)
* docs: align truth docs with templates

* docs: clarify truth template comment guidance

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-05-31 22:56:16 +10:00
9e330a0fd3 fix(cli): fail on error diagnostics (#11)
* fix(cli): fail on error diagnostics

* chore: release 1.6.1

* feat(init): refresh truth doc templates

* fix(init): preserve custom template preambles

* ci: limit GitHub token permissions

* ci: update setup-node action

---------

Co-authored-by: MerlinH <merlinh221@gmail.com>
2026-05-31 00:35:18 +10:00
662 changed files with 30332 additions and 23242 deletions
+20
View File
@@ -0,0 +1,20 @@
---
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 Check
Use this skill to audit repository truth health.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect canonical docs and relevant implementation directly.
- Report issues and suggested fixes; do not silently rewrite unrelated files.
Progressive disclosure:
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -7,5 +7,4 @@ policy:
allow_implicit_invocation: false
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -0,0 +1,54 @@
# Truthmark Check Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Check
Use this skill to audit repository truth health.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- classify the request or changed surface as product-lane, engineering-lane, both-lane, or ambiguous for reporting only
- product-lane ownership belongs under docs/truthmark/product and describes product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane ownership belongs under docs/truthmark/engineering and describes source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane ownership uses separate product and engineering docs cross-linked in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership should be reported for manual handoff or routed to Truth Structure
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- check that current docs describe current code rather than historical plans
- keep lane and cross-lane checks route-first and bounded:
- for a narrow audit, inspect only the routed area and directly linked counterpart docs
- for root-wide truth health, first build a cheap route-map/index from route files, then inspect only mismatches and linked leaves
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the user explicitly asks for user-visible product coverage
- check lane root/kind alignment for product truth under docs/truthmark/product and engineering truth under docs/truthmark/engineering
- check route YAML cross-lane realized_by and realizes links for existence and lane compatibility
- report missing product links for user-visible engineering docs only as a second-pass review diagnostic, not as default full-document reads or hard errors
- check product docs do not contain engineering execution flow, generated file inventories, or CLI envelope mechanics
- check engineering docs do not contain product promises, product rationale, or Product Decisions sections
- never judge whether a product decision is commercially correct, valuable, prioritized, or desirable
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical docs keep lane-appropriate decisions and rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence checklist:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -1,6 +1,6 @@
# Truthmark Check Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
@@ -8,7 +8,7 @@ Report completion in this shape:
Truth Check: completed
Files reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Issues found:
- none
@@ -18,7 +18,7 @@ Fixes suggested:
Evidence checked:
- Finding: The root route index is present and maps repository truth owners.
Evidence: docs/truthmark/areas.md:1
Evidence: docs/truthmark/routes/areas.md:1
Suggested fix: none
Confidence: high
@@ -1,6 +1,6 @@
# Truthmark Check Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Codex subagent mode:
- use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out
@@ -3,30 +3,19 @@ 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 Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Use as a Gemini CLI Agent Skill; commands remain available under `/truthmark:*` for command-first invocation.
Invocations: OpenCode /skill truthmark-document; Codex /truthmark-document or $truthmark-document; Claude Code /truthmark-document; GitHub Copilot /truthmark-document; Gemini CLI /truthmark:document.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Document current implemented behavior; do not invent future behavior.
- May write canonical truth docs and truth routing files only; must not write functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -7,5 +7,4 @@ policy:
allow_implicit_invocation: false
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -0,0 +1,92 @@
# Truthmark Document Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Truth Document is manual and implementation-first:
- run only when the user explicitly asks to generate or update truth docs for existing behavior, or when Truth Sync, Truth Check, or Truth Structure reports implemented behavior that lacks canonical truth docs
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect existing canonical docs, implementation code, and tests directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- document current implemented behavior; do not invent future behavior or planned endpoints
- may write canonical truth docs and docs/truthmark/routes/areas.md or relevant child route files only
- must not write functional code
- when routing is missing, stale, broad, overloaded, catch-all, or cannot map the behavior to a bounded truth owner, run Truth Structure first when routing repair is safe and in scope
- stop and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- keep feature README.md files as indexes rather than truth-document targets
- create or update bounded leaf truth docs when behavior does not fit an existing leaf doc
- write product capability/boundary truth under docs/truthmark/product when documenting product promise, boundary, rationale, or user/stakeholder value
- write engineering truth under docs/truthmark/engineering when documenting implementation behavior, contracts, architecture, workflows, operations, or tests
- for both-lane documentation requests, write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- keep engineering behavior truth behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- keep API endpoint details in the nearest contract truth doc when such a doc owns the API contract
- preserve unrelated authored content
Truth-doc ownership review:
- before editing or relying on the implemented behavior and candidate truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise stop and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Decision/Rationale preservation review:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions, Engineering Decisions, and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the correct product or engineering lane owner; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, stop with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc keeps lane-appropriate decision/rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence checklist:
- route-first: map the documented behavior to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, lane-specific decisions, and rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or record unsupported claims for manual handoff
- if no truth doc changed, report why current truth was already sufficient or why documentation was blocked
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and WorkflowState/action context may guide routing, write boundaries, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
When creating or updating a truth doc, inspect the routed truth kind and use the matching template under the configured Truthmark templates root.
Supported kinds: product-capability, engineering-behavior, engineering-contract, engineering-architecture, engineering-workflow, engineering-operations, and engineering-test-behavior.
Treat the HTML comments under each template section as normative authoring guidance for that section.
Align existing docs to that template and write or repair section content so it satisfies the comment guidance while preserving accurate authored content.
If the template is missing, use lane-specific sections: product truth says what must be true and why; engineering truth says how the repository currently realizes it.
Teams may edit template files under the configured Truthmark templates root to define their local truth-doc standards.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Truth-doc shape repair review:
- Truth Document may restructure only truth docs for the implemented behavior being documented.
- repair shape in place only after the ownership review confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or record unsupported or stale claims for manual handoff
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
Optional validation: when local tooling is available, you may validate the final report with `truthmark validate document-report <report-file> --json`; direct checkout inspection and evidence review remain authoritative.
Parent post-document verification:
- verify only truth docs and leased truth routing files changed during document work
- stop on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and expected report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or manual handoff reason when applicable
@@ -1,6 +1,6 @@
# Truthmark Document Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
@@ -10,28 +10,25 @@ Implementation reviewed:
- src/routing/area-resolver.ts
Ownership reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Truth docs created:
- docs/truth/contracts.md
- docs/truthmark/engineering/contracts/routing.md
Truth docs updated:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Truth docs restructured:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Routing updated:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Evidence checked:
- Claim: Route resolution behavior is documented in the contracts truth doc.
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/areas.md:9
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/routes/areas.md:9
Result: supported
Helper scripts:
- validate-write-lease: skipped, no write lease used
Notes:
- Documented routing and behavior from route handlers and tests.
```
@@ -1,6 +1,6 @@
# Truthmark Document Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Codex subagent mode:
- use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out
@@ -3,26 +3,18 @@ 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 Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Use as a Gemini CLI Agent Skill; commands remain available under `/truthmark:*` for command-first invocation.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Truth docs lead; code follows.
- may write functional code only; must not edit truth docs or truth routing while realizing those docs.
- Read support/procedure.md before changing code.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -7,5 +7,4 @@ policy:
allow_implicit_invocation: false
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -1,13 +1,11 @@
# Truthmark Realize Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Truth Realize is doc-first:
- truth docs lead
@@ -17,23 +15,24 @@ Truth Realize is doc-first:
Workflow:
1. Read the updated truth docs named by the user, or infer the relevant docs from configured route files when present.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then read tests and the relevant functional code.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then read tests and the relevant functional code.
3. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Truth-doc ownership gate:
Truth-doc ownership review:
- before editing or relying on source truth docs before writing code, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, block before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, stop before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
4. Update functional code only so implementation matches bounded, current truth claims from the source docs.
5. Do not edit truth docs or truth routing while realizing those docs.
6. Run relevant tests for the changed code.
7. Report changed code files and verification steps.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Read and write boundaries:
@@ -0,0 +1,19 @@
# Truthmark Realize Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Realize: completed
Truth docs used:
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Code updated:
- src/auth/session.ts
Verification:
- npm test -- auth
```
@@ -3,27 +3,19 @@ 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 Structure
Use this skill to design or repair Truthmark area structure.
Use as a Gemini CLI Agent Skill; commands remain available under `/truthmark:*` for command-first invocation.
Invocations: OpenCode /skill truthmark-structure; Codex /truthmark-structure or $truthmark-structure; Claude Code /truthmark-structure; GitHub Copilot /truthmark-structure; Gemini CLI /truthmark:structure.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect current docs and relevant code directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect current docs and relevant code directly.
- Define areas by product or behavior ownership, not by mechanical directory mirroring.
- Do not edit functional code.
- Read support/procedure.md before writing route or starter truth-doc changes.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -7,5 +7,4 @@ policy:
allow_implicit_invocation: false
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -0,0 +1,101 @@
# Truthmark Structure Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Use this skill to design or repair Truthmark area structure.
Truth Structure is agent-native:
- inspect repository layout, current docs, Truthmark config and route files when present, and relevant code directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- define areas by product or behavior ownership, not by mechanical directory mirroring
- create or repair docs/truthmark/routes/areas.md
- create skeletal starter truth docs only when missing ownership would otherwise block future workflows
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, truth_kind, and last_reviewed inside that frontmatter. Put source references in the final ## Source References section, not in frontmatter.
- Starter truth docs are ownership anchors, not behavior writeups: include only the title, bounded area/scope, and Source References needed to make routing explicit.
- Starter truth docs must keep product and engineering truth in separate files; leave substantive behavior, contract, architecture, workflow, operations, or test prose to Truth Document.
- use docs/truthmark/product/** for product truth destinations
- use docs/truthmark/engineering/** for engineering truth destinations
- use only canonical current-truth destinations for starter truth docs
- keep Product Decisions in product truth and Engineering Decisions in engineering truth when selecting destinations; report any relocation need instead of rewriting decision prose during topology review
- preserve unrelated authored content
## New area setup
Use when a user asks to onboard a new code area into Truthmark, a new package, controller, domain, or product area lacks bounded truth ownership, or a new product area needs routing and starter truth docs.
Do:
- inspect the named code area
- infer bounded product or behavior ownership
- choose the owning route when ownership is clear; otherwise propose the route and stop for manual review
- create or update the child route entry or file
- create starter truth docs only where current truth is missing
- report the initial truth boundary
Do not:
- do not edit functional code
- do not perform full behavior documentation unless evidence is inspected and the task explicitly asks for it
- do not patch broad or mixed-owner docs in place
- do not create generic catch-all docs
- do not treat README files as Sync targets
## Topology Governance
Truth Structure owns documentation topology, lane splits, decision relocation, and relationship repair. Do not depend on humans to manually organize docs/truthmark/product or docs/truthmark/engineering. Treat both configured lane roots as managed semantic roots.
Inspect controllers, routes, handlers, services, packages, tests, existing truth docs, and route files; infer product and domain ownership from behavior boundaries, not from mechanical directory mirroring.
When topology pressure exists, repair route structure before creating or extending truth ownership anchors.
Truth-doc ownership review:
- before editing or relying on candidate route owners and current truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split or reroute only the ownership topology when safe; otherwise stop with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Topology pressure signals:
- one area maps broad code such as src/**, app/**, server/**, services/**, or packages/**
- one area maps multiple unrelated controllers, route groups, services, or bounded contexts
- one truth doc owns unrelated behaviors or unrelated endpoint families
- either configured lane root has many direct non-index docs
- a changed controller, route, or service cannot map to a specific behavior doc
- Truth Sync would need to create a new generic truth doc because routing is too broad
- endpoint or controller names reveal domains missing from docs/truthmark/routes/areas/**
Use these review thresholds as guidance:
- more than 10 direct truth docs in one folder
- more than 15 leaf areas in one child route file
- more than 8 truth docs mapped to one area
- more than 5 controllers mapped through one catch-all area
Repair rules:
- split broad, overloaded, or catch-all areas into behavior-owned child route files
- split or flag mixed-owner truth docs for bounded owners before any workflow adds new behavior claims
- create route files under docs/truthmark/routes/areas/ when a product/domain boundary is clear
- create skeletal engineering ownership anchors under docs/truthmark/engineering only when behavior lacks a current owner
- create skeletal product ownership anchors under docs/truthmark/product only when product promise, boundary, rationale, or user-visible capability ownership is in scope
- README.md files are indexes, not Truth Sync targets
- prefer bounded product docs under product/capabilities or product/decisions and engineering docs under engineering/<kind>/<surface>.md
- keep behavior truth docs behavior-oriented, not endpoint-oriented
- keep API endpoint details in the nearest contract truth doc when such a doc exists
- update routing so future Truth Sync can target small docs
- preserve existing authored docs; move or rewrite only when needed to remove ambiguity
- report Truth docs split when one broad or mixed-owner truth doc becomes multiple bounded docs
Evidence checklist:
- apply the evidence checklist before finishing when Truth Structure writes routed docs, ownership claims, lane-specific decisions, or rationale
- support ownership/behavior claims with topology or primary checkout evidence from layout, implementation boundaries, docs, config, route files, tests, templates, schemas, or contracts
- tests/examples/canonical docs corroborate; remove, narrow, or record unsupported claims for manual handoff
- Do not finish topology repair with mixed product/engineering authority in a single canonical truth doc.
- If an existing canonical doc has wrong-lane sections, report the lane repair needed and only move content when the topology split explicitly requires it.
Portable fallback:
- If this skill surface is unavailable, perform the same workflow directly from committed repository files.
- Do not require the truthmark CLI.
- Inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and representative implementation code.
- Use a subagent only when the host supports that pattern; otherwise perform the topology repair inline.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -0,0 +1,38 @@
# Truthmark Structure Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Structure: completed
Topology reviewed:
- controllers: src/auth/**
- product docs root: docs/truthmark/product
- engineering docs root: docs/truthmark/engineering
- route files: docs/truthmark/routes/areas.md
Areas reviewed:
- src/auth/**
Routing updated:
- docs/truthmark/routes/areas.md
Initial truth boundary:
- Area: Authentication
- Code: src/auth/**
- Product owner: docs/truthmark/product/capabilities/authentication-session.md
- Engineering owner: docs/truthmark/engineering/behaviors/authentication-session.md
- Scope: session behavior only
Truth docs created:
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs split:
- docs/truthmark/truth/authentication/README.md -> docs/truthmark/product/capabilities/authentication-session.md and docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs restructured:
- docs/truthmark/truth/authentication/README.md
Evidence checked:
- Claim: Session behavior belongs to a dedicated Authentication truth owner.
Evidence: src/auth/** / docs/truthmark/routes/areas.md:7
Result: supported
Topology decisions:
- Added an Authentication area because session behavior has a distinct code surface and truth owner.
Notes:
- Added an Authentication area for session behavior.
```
@@ -1,6 +1,6 @@
# Truthmark Structure Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Codex subagent mode:
- use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out
@@ -3,31 +3,20 @@ 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 Sync
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.
Use as a Gemini CLI Agent Skill; commands remain available under `/truthmark:*` for command-first invocation.
Invocations: OpenCode /skill truthmark-sync; Codex /truthmark-sync or $truthmark-sync; Claude Code /truthmark-sync; GitHub Copilot /truthmark-sync; Gemini CLI /truthmark:sync.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Skip docs-only, formatting-only, behavior-preserving renames with no truth impact, missing config, and no-code changes.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect relevant canonical docs directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect relevant canonical docs directly.
- direct checkout inspection is the canonical path; do not require the truthmark binary.
- May write canonical truth docs and truth routing files only; must not rewrite functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -7,5 +7,4 @@ policy:
allow_implicit_invocation: true
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -0,0 +1,70 @@
# Truthmark Sync Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
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.
Explicit invocation runs immediately when the user directly requests this workflow. Later functional-code changes need a fresh finish-time review, and an earlier explicit run satisfies the finish-time review only if no later functional-code changes occur.
Skip when changes are documentation-only, formatting-only, clearly behavior-preserving renames with no truth impact, when no Truthmark config exists yet, or when there are no functional code changes.
Parent workflow:
1. Inspect git status, staged changes, unstaged changes, and untracked files directly.
2. Inspect .truthmark/config.yml and configured route files only when they exist; then inspect relevant canonical docs.
3. Identify functional-code changes and the nearest truth docs or routing repairs.
4. Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Product truth decision:
- ask whether a user-visible promise, capability boundary, API contract, acceptance criterion, or explicit user/product evidence changed
- if yes, update or route product truth under docs/truthmark/product as well as engineering truth under docs/truthmark/engineering
- if no, default to engineering truth under docs/truthmark/engineering for internal implementation changes
- when both lanes change, keep separate product and engineering docs cross-linked through route YAML with realized_by and realizes
- when ownership is ambiguous, stop or route to Truth Structure instead of writing a mixed document
6. Capture decision context from the task conversation: ask whether the user provided a product or technical decision, rationale, constraint, tradeoff, rejection reason, or scope boundary. Preserve concise user-provided decision rationale in Sync Intent before truth edits, route it to Product Decisions, Engineering Decisions, Rationale, Capability Scope, Non-Goals, Maintenance Notes, or the relevant workflow/contract section, and report whether it was placed, skipped because none was provided, or needs manual handoff.
7. Update engineering truth first after code changes. Product truth is opt-in for externally visible promises, product boundaries, APIs, acceptance criteria, or explicit user/product evidence.
8. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
9. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
10. Fill Sync Intent before editing truth docs or truth routing files:
- Changed code reviewed: functional files, tests, configs, generated outputs, or other implementation evidence inspected
- Affected route/truth owner: bounded route area or canonical truth owner that maps the change
- Target truth docs: docs expected to change, or docs reviewed and left unchanged
- Intended update: claim/doc/routing update planned before writing
- Evidence to verify: checkout evidence that will support, narrow, remove, or record each claim for manual handoff
- User-provided decisions/rationale: decisions, rationale, constraints, tradeoffs, rejection reasons, or scope boundaries from the current task conversation, or "none provided"
- No-update-needed rationale: why mapped truth is already current when no truth doc should change
- Blockers: missing routing, ambiguous ownership, failed verification, unavailable evidence, or off-boundary write needs
11. Only edit allowed truth docs/routes after Sync Intent is clear; if ownership is ambiguous, repair topology first when the repair is safe and in scope, otherwise stop and recommend Truth Structure instead of guessing.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Topology review and repair:
- before updating truth docs, verify the changed code resolves to a specific behavior-owned area and bounded truth owner
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, run Truth Structure before syncing when topology repair is safe and in scope
- safe in-scope topology repair may update truth routing files and create or update bounded leaf truth docs needed to map the changed functional code; keep the repair limited to the affected route owner
- stop and recommend Truth Structure only when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that required structure repair
- do not create another generic truth doc
- README.md files are indexes, not Truth Sync targets
- must not append behavior details to a README.md index
- write engineering truth under docs/truthmark/engineering; product truth updates under docs/truthmark/product are allowed only for explicit current product behavior changes
Optional validation tooling:
- you may run truthmark check when local tooling is available
- you may validate the final report with `truthmark validate sync-report <report-file> --json` when available
- do not require the truthmark binary; direct checkout inspection is the canonical path
- optional validation must not replace agent judgment about docs and routing
- update Product Decisions only in product truth and Engineering Decisions only in engineering truth when evidence supports the lane-specific decision change
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Parent post-sync verification:
- verify only truth docs and leased truth routing files changed during sync
- stop on any unrelated diff caused by the sync step
- stop if functional code changed during sync
- validate the final report against the structured Truth Sync report contract, including Claim, indented Evidence, and Result values supported, narrowed, removed, or blocked under Evidence checked
- verify the updated docs correspond to reviewed checkout evidence, changed-code impact, or a recorded stale-truth correction made within the sync write lease
- verify the final report records ownership review, structure requirement, split, restructure, or manual handoff reason when the ownership review applies
- manual handoff outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
@@ -0,0 +1,52 @@
# Truthmark Sync Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Sync: completed
Changed code reviewed:
- src/auth/session.ts
Sync Intent:
- Changed code reviewed: src/auth/session.ts
- Affected route/truth owner: docs/truthmark/routes/areas/authentication.md
- Target truth docs: docs/truthmark/engineering/behaviors/session-timeout.md
- Intended update: Update session timeout behavior.
- Evidence to verify: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
- User-provided decisions/rationale: User rationale: session timeout behavior changed for internal implementation consistency
- No-update-needed rationale: not applicable; mapped truth is stale
- Blockers: none
Ownership reviewed:
- docs/truthmark/routes/areas/authentication.md
Truth docs updated:
- docs/truthmark/engineering/behaviors/session-timeout.md
Decision/rationale captured:
- Placed user rationale in the bounded authentication behavior truth doc under Engineering Decisions/Rationale.
Evidence checked:
- Claim: Session timeout behavior is documented in the bounded authentication behavior truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
Result: supported
Notes:
- Updated session timeout behavior.
```
Blocked report example:
```md
Truth Sync: blocked
Reason:
- Changed code maps only to the provisional bootstrap route.
Files requiring manual review:
- src/auth/**
- docs/truthmark/routes/areas/repository.md
Next action:
- Run Truth Structure for src/auth/** before updating behavior truth.
```
@@ -1,6 +1,6 @@
# Truthmark Sync Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Codex subagent mode:
- use automatically when this workflow runs in Codex and the parent agent chooses bounded subagent fan-out
+92
View File
@@ -0,0 +1,92 @@
# Truthmark Check
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
This rule is the Antigravity entrypoint for Truthmark Check.
Do not invoke another Truthmark command from here.
Manual invocation: @truthmark-check
If skill entrypoints are unavailable, use the host's direct evidence-first manual fallback procedure.
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.
## Procedure
# Truthmark Check
Use this skill to audit repository truth health.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- classify the request or changed surface as product-lane, engineering-lane, both-lane, or ambiguous for reporting only
- product-lane ownership belongs under docs/truthmark/product and describes product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane ownership belongs under docs/truthmark/engineering and describes source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane ownership uses separate product and engineering docs cross-linked in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership should be reported for manual handoff or routed to Truth Structure
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- check that current docs describe current code rather than historical plans
- keep lane and cross-lane checks route-first and bounded:
- for a narrow audit, inspect only the routed area and directly linked counterpart docs
- for root-wide truth health, first build a cheap route-map/index from route files, then inspect only mismatches and linked leaves
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the user explicitly asks for user-visible product coverage
- check lane root/kind alignment for product truth under docs/truthmark/product and engineering truth under docs/truthmark/engineering
- check route YAML cross-lane realized_by and realizes links for existence and lane compatibility
- report missing product links for user-visible engineering docs only as a second-pass review diagnostic, not as default full-document reads or hard errors
- check product docs do not contain engineering execution flow, generated file inventories, or CLI envelope mechanics
- check engineering docs do not contain product promises, product rationale, or Product Decisions sections
- never judge whether a product decision is commercially correct, valuable, prioritized, or desirable
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical docs keep lane-appropriate decisions and rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence checklist:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
## Report Template
Report completion in this shape:
```md
Truth Check: completed
Files reviewed:
- docs/truthmark/routes/areas.md
Issues found:
- none
Fixes suggested:
- none
Evidence checked:
- Finding: The root route index is present and maps repository truth owners.
Evidence: docs/truthmark/routes/areas.md:1
Suggested fix: none
Confidence: high
Validation:
- truthmark check
```
+137
View File
@@ -0,0 +1,137 @@
# Truthmark Document
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
This rule is the Antigravity entrypoint for Truthmark Document.
Do not invoke another Truthmark command from here.
Manual invocation: @truthmark-document
If skill entrypoints are unavailable, use the host's direct evidence-first manual fallback procedure.
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.
## Procedure
# Truthmark Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Truth Document is manual and implementation-first:
- run only when the user explicitly asks to generate or update truth docs for existing behavior, or when Truth Sync, Truth Check, or Truth Structure reports implemented behavior that lacks canonical truth docs
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect existing canonical docs, implementation code, and tests directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- document current implemented behavior; do not invent future behavior or planned endpoints
- may write canonical truth docs and docs/truthmark/routes/areas.md or relevant child route files only
- must not write functional code
- when routing is missing, stale, broad, overloaded, catch-all, or cannot map the behavior to a bounded truth owner, run Truth Structure first when routing repair is safe and in scope
- stop and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- keep feature README.md files as indexes rather than truth-document targets
- create or update bounded leaf truth docs when behavior does not fit an existing leaf doc
- write product capability/boundary truth under docs/truthmark/product when documenting product promise, boundary, rationale, or user/stakeholder value
- write engineering truth under docs/truthmark/engineering when documenting implementation behavior, contracts, architecture, workflows, operations, or tests
- for both-lane documentation requests, write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- keep engineering behavior truth behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- keep API endpoint details in the nearest contract truth doc when such a doc owns the API contract
- preserve unrelated authored content
Truth-doc ownership review:
- before editing or relying on the implemented behavior and candidate truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise stop and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Decision/Rationale preservation review:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions, Engineering Decisions, and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the correct product or engineering lane owner; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, stop with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc keeps lane-appropriate decision/rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence checklist:
- route-first: map the documented behavior to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, lane-specific decisions, and rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or record unsupported claims for manual handoff
- if no truth doc changed, report why current truth was already sufficient or why documentation was blocked
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and WorkflowState/action context may guide routing, write boundaries, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
When creating or updating a truth doc, inspect the routed truth kind and use the matching template under the configured Truthmark templates root.
Supported kinds: product-capability, engineering-behavior, engineering-contract, engineering-architecture, engineering-workflow, engineering-operations, and engineering-test-behavior.
Treat the HTML comments under each template section as normative authoring guidance for that section.
Align existing docs to that template and write or repair section content so it satisfies the comment guidance while preserving accurate authored content.
If the template is missing, use lane-specific sections: product truth says what must be true and why; engineering truth says how the repository currently realizes it.
Teams may edit template files under the configured Truthmark templates root to define their local truth-doc standards.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Truth-doc shape repair review:
- Truth Document may restructure only truth docs for the implemented behavior being documented.
- repair shape in place only after the ownership review confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or record unsupported or stale claims for manual handoff
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
Optional validation: when local tooling is available, you may validate the final report with `truthmark validate document-report <report-file> --json`; direct checkout inspection and evidence review remain authoritative.
Parent post-document verification:
- verify only truth docs and leased truth routing files changed during document work
- stop on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and expected report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or manual handoff reason when applicable
## Report Template
Report completion in this shape:
```md
Truth Document: completed
Implementation reviewed:
- src/routing/area-resolver.ts
Ownership reviewed:
- docs/truthmark/routes/areas.md
Truth docs created:
- docs/truthmark/engineering/contracts/routing.md
Truth docs updated:
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Truth docs restructured:
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Routing updated:
- docs/truthmark/routes/areas.md
Evidence checked:
- Claim: Route resolution behavior is documented in the contracts truth doc.
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/routes/areas.md:9
Result: supported
Notes:
- Documented routing and behavior from route handlers and tests.
```
@@ -1,19 +1,23 @@
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."
prompt = '''
---
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 Realize
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
This rule is the Antigravity entrypoint for Truthmark Realize.
Do not invoke another Truthmark command from here.
Manual invocation: @truthmark-realize
If skill entrypoints are unavailable, use the host's direct evidence-first manual fallback procedure.
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.
## Procedure
# Truthmark Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Truth Realize is doc-first:
- truth docs lead
@@ -23,23 +27,24 @@ Truth Realize is doc-first:
Workflow:
1. Read the updated truth docs named by the user, or infer the relevant docs from configured route files when present.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then read tests and the relevant functional code.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then read tests and the relevant functional code.
3. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Truth-doc ownership gate:
Truth-doc ownership review:
- before editing or relying on source truth docs before writing code, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, block before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, stop before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
4. Update functional code only so implementation matches bounded, current truth claims from the source docs.
5. Do not edit truth docs or truth routing while realizing those docs.
6. Run relevant tests for the changed code.
7. Report changed code files and verification steps.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Read and write boundaries:
@@ -47,13 +52,16 @@ Read and write boundaries:
- may write functional code only
- must not edit truth docs or truth routing while realizing those docs
## Report Template
Report completion in this shape:
```md
Truth Realize: completed
Truth docs used:
- docs/truth/authentication/session-timeout.md
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Code updated:
- src/auth/session.ts
@@ -61,5 +69,3 @@ Code updated:
Verification:
- npm test -- auth
```
User focus or arguments: {{args}}
'''
+150
View File
@@ -0,0 +1,150 @@
# Truthmark Structure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
This rule is the Antigravity entrypoint for Truthmark Structure.
Do not invoke another Truthmark command from here.
Manual invocation: @truthmark-structure
If skill entrypoints are unavailable, use the host's direct evidence-first manual fallback procedure.
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.
## Procedure
Use this skill to design or repair Truthmark area structure.
Truth Structure is agent-native:
- inspect repository layout, current docs, Truthmark config and route files when present, and relevant code directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- define areas by product or behavior ownership, not by mechanical directory mirroring
- create or repair docs/truthmark/routes/areas.md
- create skeletal starter truth docs only when missing ownership would otherwise block future workflows
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, truth_kind, and last_reviewed inside that frontmatter. Put source references in the final ## Source References section, not in frontmatter.
- Starter truth docs are ownership anchors, not behavior writeups: include only the title, bounded area/scope, and Source References needed to make routing explicit.
- Starter truth docs must keep product and engineering truth in separate files; leave substantive behavior, contract, architecture, workflow, operations, or test prose to Truth Document.
- use docs/truthmark/product/** for product truth destinations
- use docs/truthmark/engineering/** for engineering truth destinations
- use only canonical current-truth destinations for starter truth docs
- keep Product Decisions in product truth and Engineering Decisions in engineering truth when selecting destinations; report any relocation need instead of rewriting decision prose during topology review
- preserve unrelated authored content
## New area setup
Use when a user asks to onboard a new code area into Truthmark, a new package, controller, domain, or product area lacks bounded truth ownership, or a new product area needs routing and starter truth docs.
Do:
- inspect the named code area
- infer bounded product or behavior ownership
- choose the owning route when ownership is clear; otherwise propose the route and stop for manual review
- create or update the child route entry or file
- create starter truth docs only where current truth is missing
- report the initial truth boundary
Do not:
- do not edit functional code
- do not perform full behavior documentation unless evidence is inspected and the task explicitly asks for it
- do not patch broad or mixed-owner docs in place
- do not create generic catch-all docs
- do not treat README files as Sync targets
## Topology Governance
Truth Structure owns documentation topology, lane splits, decision relocation, and relationship repair. Do not depend on humans to manually organize docs/truthmark/product or docs/truthmark/engineering. Treat both configured lane roots as managed semantic roots.
Inspect controllers, routes, handlers, services, packages, tests, existing truth docs, and route files; infer product and domain ownership from behavior boundaries, not from mechanical directory mirroring.
When topology pressure exists, repair route structure before creating or extending truth ownership anchors.
Truth-doc ownership review:
- before editing or relying on candidate route owners and current truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split or reroute only the ownership topology when safe; otherwise stop with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Topology pressure signals:
- one area maps broad code such as src/**, app/**, server/**, services/**, or packages/**
- one area maps multiple unrelated controllers, route groups, services, or bounded contexts
- one truth doc owns unrelated behaviors or unrelated endpoint families
- either configured lane root has many direct non-index docs
- a changed controller, route, or service cannot map to a specific behavior doc
- Truth Sync would need to create a new generic truth doc because routing is too broad
- endpoint or controller names reveal domains missing from docs/truthmark/routes/areas/**
Use these review thresholds as guidance:
- more than 10 direct truth docs in one folder
- more than 15 leaf areas in one child route file
- more than 8 truth docs mapped to one area
- more than 5 controllers mapped through one catch-all area
Repair rules:
- split broad, overloaded, or catch-all areas into behavior-owned child route files
- split or flag mixed-owner truth docs for bounded owners before any workflow adds new behavior claims
- create route files under docs/truthmark/routes/areas/ when a product/domain boundary is clear
- create skeletal engineering ownership anchors under docs/truthmark/engineering only when behavior lacks a current owner
- create skeletal product ownership anchors under docs/truthmark/product only when product promise, boundary, rationale, or user-visible capability ownership is in scope
- README.md files are indexes, not Truth Sync targets
- prefer bounded product docs under product/capabilities or product/decisions and engineering docs under engineering/<kind>/<surface>.md
- keep behavior truth docs behavior-oriented, not endpoint-oriented
- keep API endpoint details in the nearest contract truth doc when such a doc exists
- update routing so future Truth Sync can target small docs
- preserve existing authored docs; move or rewrite only when needed to remove ambiguity
- report Truth docs split when one broad or mixed-owner truth doc becomes multiple bounded docs
Evidence checklist:
- apply the evidence checklist before finishing when Truth Structure writes routed docs, ownership claims, lane-specific decisions, or rationale
- support ownership/behavior claims with topology or primary checkout evidence from layout, implementation boundaries, docs, config, route files, tests, templates, schemas, or contracts
- tests/examples/canonical docs corroborate; remove, narrow, or record unsupported claims for manual handoff
- Do not finish topology repair with mixed product/engineering authority in a single canonical truth doc.
- If an existing canonical doc has wrong-lane sections, report the lane repair needed and only move content when the topology split explicitly requires it.
Portable fallback:
- If this skill surface is unavailable, perform the same workflow directly from committed repository files.
- Do not require the truthmark CLI.
- Inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and representative implementation code.
- Use a subagent only when the host supports that pattern; otherwise perform the topology repair inline.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
## Report Template
Report completion in this shape:
```md
Truth Structure: completed
Topology reviewed:
- controllers: src/auth/**
- product docs root: docs/truthmark/product
- engineering docs root: docs/truthmark/engineering
- route files: docs/truthmark/routes/areas.md
Areas reviewed:
- src/auth/**
Routing updated:
- docs/truthmark/routes/areas.md
Initial truth boundary:
- Area: Authentication
- Code: src/auth/**
- Product owner: docs/truthmark/product/capabilities/authentication-session.md
- Engineering owner: docs/truthmark/engineering/behaviors/authentication-session.md
- Scope: session behavior only
Truth docs created:
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs split:
- docs/truthmark/truth/authentication/README.md -> docs/truthmark/product/capabilities/authentication-session.md and docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs restructured:
- docs/truthmark/truth/authentication/README.md
Evidence checked:
- Claim: Session behavior belongs to a dedicated Authentication truth owner.
Evidence: src/auth/** / docs/truthmark/routes/areas.md:7
Result: supported
Topology decisions:
- Added an Authentication area because session behavior has a distinct code surface and truth owner.
Notes:
- Added an Authentication area for session behavior.
```
+133
View File
@@ -0,0 +1,133 @@
# Truthmark Sync
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
This rule is the Antigravity entrypoint for Truthmark Sync.
Do not invoke another Truthmark command from here.
Manual invocation: @truthmark-sync
If skill entrypoints are unavailable, use the host's direct evidence-first manual fallback procedure.
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.
## Procedure
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.
Explicit invocation runs immediately when the user directly requests this workflow. Later functional-code changes need a fresh finish-time review, and an earlier explicit run satisfies the finish-time review only if no later functional-code changes occur.
Skip when changes are documentation-only, formatting-only, clearly behavior-preserving renames with no truth impact, when no Truthmark config exists yet, or when there are no functional code changes.
Parent workflow:
1. Inspect git status, staged changes, unstaged changes, and untracked files directly.
2. Inspect .truthmark/config.yml and configured route files only when they exist; then inspect relevant canonical docs.
3. Identify functional-code changes and the nearest truth docs or routing repairs.
4. Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Product truth decision:
- ask whether a user-visible promise, capability boundary, API contract, acceptance criterion, or explicit user/product evidence changed
- if yes, update or route product truth under docs/truthmark/product as well as engineering truth under docs/truthmark/engineering
- if no, default to engineering truth under docs/truthmark/engineering for internal implementation changes
- when both lanes change, keep separate product and engineering docs cross-linked through route YAML with realized_by and realizes
- when ownership is ambiguous, stop or route to Truth Structure instead of writing a mixed document
6. Capture decision context from the task conversation: ask whether the user provided a product or technical decision, rationale, constraint, tradeoff, rejection reason, or scope boundary. Preserve concise user-provided decision rationale in Sync Intent before truth edits, route it to Product Decisions, Engineering Decisions, Rationale, Capability Scope, Non-Goals, Maintenance Notes, or the relevant workflow/contract section, and report whether it was placed, skipped because none was provided, or needs manual handoff.
7. Update engineering truth first after code changes. Product truth is opt-in for externally visible promises, product boundaries, APIs, acceptance criteria, or explicit user/product evidence.
8. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
9. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
10. Fill Sync Intent before editing truth docs or truth routing files:
- Changed code reviewed: functional files, tests, configs, generated outputs, or other implementation evidence inspected
- Affected route/truth owner: bounded route area or canonical truth owner that maps the change
- Target truth docs: docs expected to change, or docs reviewed and left unchanged
- Intended update: claim/doc/routing update planned before writing
- Evidence to verify: checkout evidence that will support, narrow, remove, or record each claim for manual handoff
- User-provided decisions/rationale: decisions, rationale, constraints, tradeoffs, rejection reasons, or scope boundaries from the current task conversation, or "none provided"
- No-update-needed rationale: why mapped truth is already current when no truth doc should change
- Blockers: missing routing, ambiguous ownership, failed verification, unavailable evidence, or off-boundary write needs
11. Only edit allowed truth docs/routes after Sync Intent is clear; if ownership is ambiguous, repair topology first when the repair is safe and in scope, otherwise stop and recommend Truth Structure instead of guessing.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Topology review and repair:
- before updating truth docs, verify the changed code resolves to a specific behavior-owned area and bounded truth owner
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, run Truth Structure before syncing when topology repair is safe and in scope
- safe in-scope topology repair may update truth routing files and create or update bounded leaf truth docs needed to map the changed functional code; keep the repair limited to the affected route owner
- stop and recommend Truth Structure only when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that required structure repair
- do not create another generic truth doc
- README.md files are indexes, not Truth Sync targets
- must not append behavior details to a README.md index
- write engineering truth under docs/truthmark/engineering; product truth updates under docs/truthmark/product are allowed only for explicit current product behavior changes
Optional validation tooling:
- you may run truthmark check when local tooling is available
- you may validate the final report with `truthmark validate sync-report <report-file> --json` when available
- do not require the truthmark binary; direct checkout inspection is the canonical path
- optional validation must not replace agent judgment about docs and routing
- update Product Decisions only in product truth and Engineering Decisions only in engineering truth when evidence supports the lane-specific decision change
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Parent post-sync verification:
- verify only truth docs and leased truth routing files changed during sync
- stop on any unrelated diff caused by the sync step
- stop if functional code changed during sync
- validate the final report against the structured Truth Sync report contract, including Claim, indented Evidence, and Result values supported, narrowed, removed, or blocked under Evidence checked
- verify the updated docs correspond to reviewed checkout evidence, changed-code impact, or a recorded stale-truth correction made within the sync write lease
- verify the final report records ownership review, structure requirement, split, restructure, or manual handoff reason when the ownership review applies
- manual handoff outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
## Report Template
Report completion in this shape:
```md
Truth Sync: completed
Changed code reviewed:
- src/auth/session.ts
Sync Intent:
- Changed code reviewed: src/auth/session.ts
- Affected route/truth owner: docs/truthmark/routes/areas/authentication.md
- Target truth docs: docs/truthmark/engineering/behaviors/session-timeout.md
- Intended update: Update session timeout behavior.
- Evidence to verify: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
- User-provided decisions/rationale: User rationale: session timeout behavior changed for internal implementation consistency
- No-update-needed rationale: not applicable; mapped truth is stale
- Blockers: none
Ownership reviewed:
- docs/truthmark/routes/areas/authentication.md
Truth docs updated:
- docs/truthmark/engineering/behaviors/session-timeout.md
Decision/rationale captured:
- Placed user rationale in the bounded authentication behavior truth doc under Engineering Decisions/Rationale.
Evidence checked:
- Claim: Session timeout behavior is documented in the bounded authentication behavior truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
Result: supported
Notes:
- Updated session timeout behavior.
```
Blocked report example:
```md
Truth Sync: blocked
Reason:
- Changed code maps only to the provisional bootstrap route.
Files requiring manual review:
- src/auth/**
- docs/truthmark/routes/areas/repository.md
Next action:
- Run Truth Structure for src/auth/** before updating behavior truth.
```
+2 -2
View File
@@ -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.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Manual invocation: use the truth-claim-verifier subagent.
@@ -16,6 +16,6 @@ For every checked claim, classify the result as supported | narrowed | removed |
Do not edit files, stage changes, or invent missing behavior.
Return JSON only with keys: scope, filesReviewed, claimsChecked, evidence, unsupportedClaims, confidence, recommendedWorkflow, notes.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
+3 -3
View File
@@ -4,17 +4,17 @@ 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.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Manual invocation: use the truth-doc-reviewer subagent.
Stay read-only.
Review assigned canonical truth docs for frontmatter, source_of_truth, required template sections, Evidence checked entries, Product Decisions, and Rationale.
Review assigned canonical truth docs for compact frontmatter, required template sections, final Source References entries, Evidence checked entries, and lane-appropriate decision sections (Product Decisions in product truth, Engineering Decisions in engineering truth).
Flag README.md files used as behavior truth targets, mixed-owner docs, and shape repairs that should move to Truth Structure.
Do not edit files, stage changes, or rewrite docs.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
+1 -1
View File
@@ -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.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Manual invocation: use the truth-doc-writer subagent with an explicit parent write lease.
+9 -2
View File
@@ -4,18 +4,25 @@ 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.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Manual invocation: use the truth-route-auditor subagent.
Stay read-only.
Audit one bounded Truthmark route, area, or doc shard assigned by the parent.
Inspect .truthmark/config.yml and route files only when they exist; then inspect mapped truth docs and relevant implementation files directly.
Use a route-first bounded strategy: narrow audits inspect only the routed area and directly linked counterpart docs; root-wide health first builds a cheap route-map/index from route files, then inspects only mismatches and linked leaves.
Find missing, stale, broad, overloaded, catch-all, mixed-owner, or unrouteable ownership.
Validate route ownership against lane-specific roots and route kind:
- confirm mapped truth docs resolve to the correct lane root (product or engineering) for their kind
- flag mismatch between assigned route kind and resolved doc kind (for example, product-capability routed to engineering paths)
- verify route-doc linkage for lane pairings via realized_by and realizes before recommending edits
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the parent explicitly asks for user-visible product coverage
- treat missing product links for user-visible engineering docs as a second-pass diagnostic, not a default full-document read.
Do not edit files, stage changes, or propose broad rewrites.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
+4 -12
View File
@@ -3,26 +3,18 @@ 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 Check
Use this skill to audit repository truth health.
Invocations: OpenCode /skill truthmark-check; Codex /truthmark-check or $truthmark-check; Claude Code /truthmark-check; GitHub Copilot /truthmark-check; Gemini CLI /truthmark:check.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect canonical docs and relevant implementation directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect canonical docs and relevant implementation directly.
- Report issues and suggested fixes; do not silently rewrite unrelated files.
- Direct checkout inspection is valid even when local tooling is unavailable.
- Read support/procedure.md before auditing details.
- Read support/subagents-and-leases.md before dispatching verifier subagents.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -1,37 +1,54 @@
# Truthmark Check Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Check
Use this skill to audit repository truth health.
Invocations: OpenCode /skill truthmark-check; Codex /truthmark-check or $truthmark-check; Claude Code /truthmark-check; GitHub Copilot /truthmark-check; Gemini CLI /truthmark:check.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- inspect the configured root route index at docs/truthmark/areas.md and relevant child route files under docs/truthmark/areas/ when they exist
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- classify the request or changed surface as product-lane, engineering-lane, both-lane, or ambiguous for reporting only
- product-lane ownership belongs under docs/truthmark/product and describes product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane ownership belongs under docs/truthmark/engineering and describes source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane ownership uses separate product and engineering docs cross-linked in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership should be reported for manual handoff or routed to Truth Structure
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- check that current docs describe current code rather than historical plans
- keep lane and cross-lane checks route-first and bounded:
- for a narrow audit, inspect only the routed area and directly linked counterpart docs
- for root-wide truth health, first build a cheap route-map/index from route files, then inspect only mismatches and linked leaves
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the user explicitly asks for user-visible product coverage
- check lane root/kind alignment for product truth under docs/truthmark/product and engineering truth under docs/truthmark/engineering
- check route YAML cross-lane realized_by and realizes links for existence and lane compatibility
- report missing product links for user-visible engineering docs only as a second-pass review diagnostic, not as default full-document reads or hard errors
- check product docs do not contain engineering execution flow, generated file inventories, or CLI envelope mechanics
- check engineering docs do not contain product promises, product rationale, or Product Decisions sections
- never judge whether a product decision is commercially correct, valuable, prioritized, or desirable
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical behavior docs keep active Product Decisions and Rationale sections
- check that canonical docs keep lane-appropriate decisions and rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence Gate:
Evidence checklist:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -1,6 +1,6 @@
# Truthmark Check Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
@@ -8,7 +8,7 @@ Report completion in this shape:
Truth Check: completed
Files reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Issues found:
- none
@@ -18,7 +18,7 @@ Fixes suggested:
Evidence checked:
- Finding: The root route index is present and maps repository truth owners.
Evidence: docs/truthmark/areas.md:1
Evidence: docs/truthmark/routes/areas.md:1
Suggested fix: none
Confidence: high
@@ -1,6 +1,6 @@
# Truthmark Check Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Claude Code subagent mode:
- use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out
+4 -13
View File
@@ -3,28 +3,19 @@ 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 Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Invocations: OpenCode /skill truthmark-document; Codex /truthmark-document or $truthmark-document; Claude Code /truthmark-document; GitHub Copilot /truthmark-document; Gemini CLI /truthmark:document.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Document current implemented behavior; do not invent future behavior.
- May write canonical truth docs and truth routing files only; must not write functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -1,34 +0,0 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
helpers:
validate-document-report:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- document-report
- <report-file>
- --json
inputs:
- document report file
output: json
writes: false
fallback: manually validate support/report-template.md required sections and structured Evidence checked entries
validate-write-lease:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- write-lease
- <lease-or-report-file>
- <changed-files-file>
- --json
inputs:
- lease or worker report yaml
- changed file list
output: json
writes: false
fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files
@@ -1,23 +0,0 @@
# Optional Helper CLI Policy
Generated by Truthmark 1.6.0. 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.
Runner detection:
- Check the declared Truthmark CLI runner before invoking a helper.
- Invoke helpers through the installed `truthmark validate ... --json` CLI command using argv-style arguments from helper-manifest.yml.
- If unavailable or version-mismatched, treat the helper as skipped and use the manual fallback.
- 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
Final reports should include helper status when helpers are declared for this workflow:
```md
Helper scripts:
- validate-document-report: ran, passed
- validate-write-lease: skipped, no write lease used
```
@@ -1,79 +1,92 @@
# Truthmark Document Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Invocations: OpenCode /skill truthmark-document; Codex /truthmark-document or $truthmark-document; Claude Code /truthmark-document; GitHub Copilot /truthmark-document; Gemini CLI /truthmark:document.
Truth Document is manual and implementation-first:
- run only when the user explicitly asks to generate or update truth docs for existing behavior, or when Truth Sync, Truth Check, or Truth Structure reports implemented behavior that lacks canonical truth docs
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect existing canonical docs, implementation code, and tests directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- document current implemented behavior; do not invent future behavior or planned endpoints
- may write canonical truth docs and docs/truthmark/areas.md or relevant child route files only
- may write canonical truth docs and docs/truthmark/routes/areas.md or relevant child route files only
- must not write functional code
- when routing is missing, stale, broad, overloaded, catch-all, or cannot map the behavior to a bounded truth owner, run Truth Structure first when routing repair is safe and in scope
- block and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- stop and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- keep feature README.md files as indexes rather than truth-document targets
- create or update bounded leaf truth docs when behavior does not fit an existing leaf doc
- keep behavior truth docs behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- write product capability/boundary truth under docs/truthmark/product when documenting product promise, boundary, rationale, or user/stakeholder value
- write engineering truth under docs/truthmark/engineering when documenting implementation behavior, contracts, architecture, workflows, operations, or tests
- for both-lane documentation requests, write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- keep engineering behavior truth behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- keep API endpoint details in the nearest contract truth doc when such a doc owns the API contract
- preserve unrelated authored content
Truth-doc ownership gate:
Truth-doc ownership review:
- before editing or relying on the implemented behavior and candidate truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise block and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise stop and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Decision/Rationale preservation review:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions, Engineering Decisions, and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the correct product or engineering lane owner; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence Gate:
- if ownership of a decision or rationale is unclear, stop with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc keeps lane-appropriate decision/rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence checklist:
- route-first: map the documented behavior to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, Product Decisions, and Rationale
- review new or changed behavior-bearing claims only in touched docs, route ownership, lane-specific decisions, and rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or block unsupported claims
- remove, narrow, or record unsupported claims for manual handoff
- if no truth doc changed, report why current truth was already sufficient or why documentation was blocked
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and ContextPack may guide routing, context selection, and verification planning when available.
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and WorkflowState/action context may guide routing, write boundaries, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
Truth-doc shape repair gate:
When creating or updating a truth doc, inspect the routed truth kind and use the matching template under the configured Truthmark templates root.
Supported kinds: product-capability, engineering-behavior, engineering-contract, engineering-architecture, engineering-workflow, engineering-operations, and engineering-test-behavior.
Treat the HTML comments under each template section as normative authoring guidance for that section.
Align existing docs to that template and write or repair section content so it satisfies the comment guidance while preserving accurate authored content.
If the template is missing, use lane-specific sections: product truth says what must be true and why; engineering truth says how the repository currently realizes it.
Teams may edit template files under the configured Truthmark templates root to define their local truth-doc standards.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Truth-doc shape repair review:
- Truth Document may restructure only truth docs for the implemented behavior being documented.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- repair shape in place only after the ownership review confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- preserve supported claims; remove, narrow, or record unsupported or stale claims for manual handoff
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Helper status reporting:
- Validate the report body before adding this validator's own success status; the body may omit `validate-document-report` while validation is pending.
- After `truthmark validate document-report <report-file> --json` returns `data.validation.ok: true`, append or update `validate-document-report: ran, passed` in the final report.
- If the installed Truthmark CLI is unavailable or the helper is skipped, record `validate-document-report: skipped, <reason>` and manually validate the report shape.
- Record `validate-write-lease: ran, passed` only after validating a concrete write lease; otherwise use a truthful skipped status such as `skipped, no write lease used`.
- Helper output is derived evidence and never replaces direct checkout inspection, evidence review, or parent acceptance.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
Optional validation: when local tooling is available, you may validate the final report with `truthmark validate document-report <report-file> --json`; direct checkout inspection and evidence review remain authoritative.
Parent post-document verification:
- verify only truth docs and leased truth routing files changed during document work
- block on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and required report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or blocked reason when applicable
- stop on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and expected report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or manual handoff reason when applicable
@@ -1,6 +1,6 @@
# Truthmark Document Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
@@ -10,28 +10,25 @@ Implementation reviewed:
- src/routing/area-resolver.ts
Ownership reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Truth docs created:
- docs/truth/contracts.md
- docs/truthmark/engineering/contracts/routing.md
Truth docs updated:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Truth docs restructured:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Routing updated:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Evidence checked:
- Claim: Route resolution behavior is documented in the contracts truth doc.
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/areas.md:9
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/routes/areas.md:9
Result: supported
Helper scripts:
- validate-write-lease: skipped, no write lease used
Notes:
- Documented routing and behavior from route handlers and tests.
```
@@ -1,6 +1,6 @@
# Truthmark Document Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Claude Code subagent mode:
- use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out
-27
View File
@@ -1,27 +0,0 @@
---
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 Preview
Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits.
Invocations: OpenCode /skill truthmark-preview; Codex /truthmark-preview or $truthmark-preview; Claude Code /truthmark-preview; GitHub Copilot /truthmark-preview; Gemini CLI /truthmark:preview.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect only the truth docs or implementation files needed to preview ownership.
- Truth Preview is read-only; this report is intended, not authorized.
- must not edit files and must not issue write leases; do not run Truth Sync automatically, replace Truth Check, claim final correctness, or mutate code.
- Use optional read-only route-auditor evidence only when it reduces context or clarifies ownership.
- Hand off to the selected workflow after user approval.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
@@ -1,43 +0,0 @@
# Truthmark Preview Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits.
Invocations: OpenCode /skill truthmark-preview; Codex /truthmark-preview or $truthmark-preview; Claude Code /truthmark-preview; GitHub Copilot /truthmark-preview; Gemini CLI /truthmark:preview.
Truth Preview is read-only. Its report is intended, not authorized.
Purpose:
- preview the likely Truthmark workflow, route owner, target files, expected write classes, suggested subagent use, and blocking ambiguity before edits happen
- hand off to the selected workflow after user approval
- keep the selector thin so agents can avoid loading or acting through heavier workflows prematurely
Read:
- .truthmark/config.yml, only when present
- docs/truthmark/areas.md, only when present
- relevant child route files under docs/truthmark/areas/, only when present
- relevant truth docs and implementation files needed to preview ownership
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Do not:
- must not edit files
- must not create truth docs
- must not update routing
- must not run Truth Sync automatically
- must not replace Truth Check
- must not claim final correctness
- must not issue write leases
- must not mutate code
Suggested subagent use:
- optional read-only verifier: truth_route_auditor
- write workers: none
- leases needed: none
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
@@ -1,41 +0,0 @@
# Truthmark Preview Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Report completion in this shape:
```md
Truth Preview: completed
Requested outcome:
- preview likely Truthmark workflow routing before edits
Likely workflow:
- truthmark-document
Why this workflow:
- positive trigger: document existing implemented behavior
- negative triggers considered: functional-code change, doc-first implementation, topology repair, truth audit
- forbidden adjacency considered: must not edit functional code
Likely route owner:
- route file: docs/truthmark/areas.md
- truth doc: docs/truth/example.md
- confidence: medium
Expected write classes:
- truth docs
Expected target files:
- docs/truth/example.md
Suggested subagent use:
- read-only verifiers: truth_route_auditor
- write workers: none in Preview
- leases needed: none in Preview
Blocking ambiguity:
- none identified in preview
Handoff:
- Run the selected Truthmark workflow after user approval.
```
@@ -1,10 +0,0 @@
# Truthmark Preview Subagents And Leases
Generated by Truthmark 1.6.0. 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
- dispatch read-only project subagents only: truth-route-auditor subagent
- subagents inspect checkout evidence directly, return structured findings, and must not edit files
- parent supplies bounded evidence shards; subagents must not preload host instruction files or repo-wide policy docs unless assigned as evidence
- Parent agent owns the final Truth Preview report
+3 -9
View File
@@ -3,24 +3,18 @@ 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 Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Truth docs lead; code follows.
- may write functional code only; must not edit truth docs or truth routing while realizing those docs.
- Read support/procedure.md before changing code.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -1,13 +1,11 @@
# Truthmark Realize Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Truth Realize is doc-first:
- truth docs lead
@@ -17,23 +15,24 @@ Truth Realize is doc-first:
Workflow:
1. Read the updated truth docs named by the user, or infer the relevant docs from configured route files when present.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then read tests and the relevant functional code.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then read tests and the relevant functional code.
3. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Truth-doc ownership gate:
Truth-doc ownership review:
- before editing or relying on source truth docs before writing code, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, block before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, stop before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
4. Update functional code only so implementation matches bounded, current truth claims from the source docs.
5. Do not edit truth docs or truth routing while realizing those docs.
6. Run relevant tests for the changed code.
7. Report changed code files and verification steps.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Read and write boundaries:
@@ -1,6 +1,6 @@
# Truthmark Realize Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
@@ -8,7 +8,8 @@ Report completion in this shape:
Truth Realize: completed
Truth docs used:
- docs/truth/authentication/session-timeout.md
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Code updated:
- src/auth/session.ts
+4 -10
View File
@@ -3,25 +3,19 @@ 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 Structure
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.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect current docs and relevant code directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect current docs and relevant code directly.
- Define areas by product or behavior ownership, not by mechanical directory mirroring.
- Do not edit functional code.
- Read support/procedure.md before writing route or starter truth-doc changes.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -1,35 +1,40 @@
# Truthmark Structure Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
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.
Truth Structure is agent-native:
- inspect repository layout, current docs, Truthmark config and route files when present, and relevant code directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- inspect the configured root route index at docs/truthmark/areas.md and relevant child route files under docs/truthmark/areas/ when they exist
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- define areas by product or behavior ownership, not by mechanical directory mirroring
- create or repair docs/truthmark/areas.md
- create starter truth docs when useful and when they belong in the canonical current-truth surface
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, doc_type, last_reviewed, and source_of_truth inside that frontmatter.
- Starter truth docs must include ## Product Decisions and ## Rationale sections.
- create or repair docs/truthmark/routes/areas.md
- create skeletal starter truth docs only when missing ownership would otherwise block future workflows
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, truth_kind, and last_reviewed inside that frontmatter. Put source references in the final ## Source References section, not in frontmatter.
- Starter truth docs are ownership anchors, not behavior writeups: include only the title, bounded area/scope, and Source References needed to make routing explicit.
- Starter truth docs must keep product and engineering truth in separate files; leave substantive behavior, contract, architecture, workflow, operations, or test prose to Truth Document.
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
- use docs/truth/**, docs/architecture/**, or docs/standards/** for current truth destinations
- use docs/truthmark/product/** for product truth destinations
- use docs/truthmark/engineering/** for engineering truth destinations
- use only canonical current-truth destinations for starter truth docs
- keep active Product Decisions and Rationale in the canonical doc that owns the behavior
- keep Product Decisions in product truth and Engineering Decisions in engineering truth when selecting destinations; report any relocation need instead of rewriting decision prose during topology review
- preserve unrelated authored content
## New area setup
Use when a user asks to onboard a new code area into Truthmark, a new package, controller, domain, or product area lacks bounded truth ownership, or a new product area needs routing and starter truth docs.
Do:
- inspect the named code area
- infer bounded product or behavior ownership
- choose the owning route when ownership is clear; otherwise propose the route and block for review
- choose the owning route when ownership is clear; otherwise propose the route and stop for manual review
- create or update the child route entry or file
- create starter truth docs only where current truth is missing
- report the initial truth boundary
@@ -40,28 +45,22 @@ Do not:
- do not create generic catch-all docs
- do not treat README files as Sync targets
## Topology Governance
Truth Structure owns documentation topology. Do not depend on humans to manually organize docs/truth. Treat the configured truth root as a managed semantic root.
Truth Structure owns documentation topology, lane splits, decision relocation, and relationship repair. Do not depend on humans to manually organize docs/truthmark/product or docs/truthmark/engineering. Treat both configured lane roots as managed semantic roots.
Inspect controllers, routes, handlers, services, packages, tests, existing truth docs, and route files; infer product and domain ownership from behavior boundaries, not from mechanical directory mirroring.
When topology pressure exists, repair structure before creating or extending truth docs.
Truth-doc ownership gate:
When topology pressure exists, repair route structure before creating or extending truth ownership anchors.
Truth-doc ownership review:
- before editing or relying on candidate route owners and current truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split and reroute into bounded truth docs when safe; otherwise block with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split or reroute only the ownership topology when safe; otherwise stop with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Topology pressure signals:
- one area maps broad code such as src/**, app/**, server/**, services/**, or packages/**
- one area maps multiple unrelated controllers, route groups, services, or bounded contexts
- one truth doc owns unrelated behaviors or unrelated endpoint families
- the configured truth root has many direct non-index docs
- either configured lane root has many direct non-index docs
- a changed controller, route, or service cannot map to a specific behavior doc
- Truth Sync would need to create a new generic truth doc because routing is too broad
- endpoint or controller names reveal domains missing from docs/truthmark/areas/**
- endpoint or controller names reveal domains missing from docs/truthmark/routes/areas/**
Use these review thresholds as guidance:
- more than 10 direct truth docs in one folder
- more than 15 leaf areas in one child route file
@@ -69,31 +68,23 @@ Use these review thresholds as guidance:
- more than 5 controllers mapped through one catch-all area
Repair rules:
- split broad, overloaded, or catch-all areas into behavior-owned child route files
- split mixed-owner truth docs into bounded owner docs before adding new behavior claims
- create route files under docs/truthmark/areas/ when a product/domain boundary is clear
- create behavior truth docs under the configured truth root only when behavior lacks a current doc
- split or flag mixed-owner truth docs for bounded owners before any workflow adds new behavior claims
- create route files under docs/truthmark/routes/areas/ when a product/domain boundary is clear
- create skeletal engineering ownership anchors under docs/truthmark/engineering only when behavior lacks a current owner
- create skeletal product ownership anchors under docs/truthmark/product only when product promise, boundary, rationale, or user-visible capability ownership is in scope
- README.md files are indexes, not Truth Sync targets
- prefer bounded leaf truth docs at <truth-root>/<domain>/<behavior>.md
- prefer bounded product docs under product/capabilities or product/decisions and engineering docs under engineering/<kind>/<surface>.md
- keep behavior truth docs behavior-oriented, not endpoint-oriented
- keep API endpoint details in the nearest contract truth doc when such a doc exists
- update routing so future Truth Sync can target small docs
- preserve existing authored docs; move or rewrite only when needed to remove ambiguity
- report Truth docs split when one broad or mixed-owner truth doc becomes multiple bounded docs
Truth-doc shape repair gate:
- Truth Structure may restructure broader routed docs when topology, ownership, or doc-shape repair is already in scope.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- report docs restructured and why a narrow edit was not sufficient
Evidence Gate:
- apply the Evidence Gate before finishing when Truth Structure writes routed docs, ownership claims, Product Decisions, or Rationale
Evidence checklist:
- apply the evidence checklist before finishing when Truth Structure writes routed docs, ownership claims, lane-specific decisions, or rationale
- support ownership/behavior claims with topology or primary checkout evidence from layout, implementation boundaries, docs, config, route files, tests, templates, schemas, or contracts
- tests/examples/canonical docs corroborate; remove, narrow, or block unsupported claims
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
- Do not finish topology repair with routed canonical current-truth docs missing Product Decisions or Rationale sections.
- If an existing canonical doc lacks either section, add the missing heading beside Current Behavior with a concise current-state placeholder or active decision.
- tests/examples/canonical docs corroborate; remove, narrow, or record unsupported claims for manual handoff
- Do not finish topology repair with mixed product/engineering authority in a single canonical truth doc.
- If an existing canonical doc has wrong-lane sections, report the lane repair needed and only move content when the topology split explicitly requires it.
Portable fallback:
- If this skill surface is unavailable, perform the same workflow directly from committed repository files.
- Do not require the truthmark CLI.
@@ -101,9 +92,10 @@ Portable fallback:
- Use a subagent only when the host supports that pattern; otherwise perform the topology repair inline.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -1,32 +1,35 @@
# Truthmark Structure Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Structure: completed
Topology reviewed:
- controllers: src/auth/**
- docs root: docs/truth
- route files: docs/truthmark/areas.md
- product docs root: docs/truthmark/product
- engineering docs root: docs/truthmark/engineering
- route files: docs/truthmark/routes/areas.md
Areas reviewed:
- src/auth/**
Routing updated:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Initial truth boundary:
- Area: Authentication
- Code: src/auth/**
- Truth owner: docs/truth/authentication/session.md
- Product owner: docs/truthmark/product/capabilities/authentication-session.md
- Engineering owner: docs/truthmark/engineering/behaviors/authentication-session.md
- Scope: session behavior only
Truth docs created:
- docs/truth/authentication/session.md
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs split:
- docs/truth/authentication/README.md -> docs/truth/authentication/session.md
- docs/truthmark/truth/authentication/README.md -> docs/truthmark/product/capabilities/authentication-session.md and docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs restructured:
- docs/truth/authentication/README.md
- docs/truthmark/truth/authentication/README.md
Evidence checked:
- Claim: Session behavior belongs to a dedicated Authentication truth owner.
Evidence: src/auth/** / docs/truthmark/areas.md:7
Evidence: src/auth/** / docs/truthmark/routes/areas.md:7
Result: supported
Topology decisions:
- Added an Authentication area because session behavior has a distinct code surface and truth owner.
@@ -1,6 +1,6 @@
# Truthmark Structure Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Claude Code subagent mode:
- use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out
+4 -13
View File
@@ -3,29 +3,20 @@ 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 Sync
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.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Skip docs-only, formatting-only, behavior-preserving renames with no truth impact, missing config, and no-code changes.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect relevant canonical docs directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect relevant canonical docs directly.
- direct checkout inspection is the canonical path; do not require the truthmark binary.
- May write canonical truth docs and truth routing files only; must not rewrite functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
- support/subagents-and-leases.md — read only when using subagents, leases, or accepting worker output
@@ -1,34 +0,0 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
helpers:
validate-sync-report:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- sync-report
- <report-file>
- --json
inputs:
- sync report file
output: json
writes: false
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
command:
argv:
- truthmark
- validate
- write-lease
- <lease-or-report-file>
- <changed-files-file>
- --json
inputs:
- lease or worker report yaml
- changed file list
output: json
writes: false
fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files
@@ -1,23 +0,0 @@
# Optional Helper CLI Policy
Generated by Truthmark 1.6.0. 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.
Runner detection:
- Check the declared Truthmark CLI runner before invoking a helper.
- Invoke helpers through the installed `truthmark validate ... --json` CLI command using argv-style arguments from helper-manifest.yml.
- If unavailable or version-mismatched, treat the helper as skipped and use the manual fallback.
- 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
Final reports should include helper status when helpers are declared for this workflow:
```md
Helper scripts:
- validate-sync-report: ran, passed
- validate-write-lease: skipped, no write lease used
```
@@ -1,88 +1,70 @@
# Truthmark Sync Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
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.
Explicit invocation runs immediately. Later functional-code changes reopen the finish-time requirement, and an earlier explicit run satisfies the finish gate only if no later functional-code changes occur.
Explicit invocation runs immediately when the user directly requests this workflow. Later functional-code changes need a fresh finish-time review, and an earlier explicit run satisfies the finish-time review only if no later functional-code changes occur.
Skip when changes are documentation-only, formatting-only, clearly behavior-preserving renames with no truth impact, when no Truthmark config exists yet, or when there are no functional code changes.
Parent workflow:
1. Inspect git status, staged changes, unstaged changes, and untracked files directly.
2. Inspect .truthmark/config.yml and configured route files only when they exist; then inspect relevant canonical docs.
3. Identify functional-code changes and the nearest truth docs or routing repairs.
4. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
6. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
Topology quality gate:
4. Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Product truth decision:
- ask whether a user-visible promise, capability boundary, API contract, acceptance criterion, or explicit user/product evidence changed
- if yes, update or route product truth under docs/truthmark/product as well as engineering truth under docs/truthmark/engineering
- if no, default to engineering truth under docs/truthmark/engineering for internal implementation changes
- when both lanes change, keep separate product and engineering docs cross-linked through route YAML with realized_by and realizes
- when ownership is ambiguous, stop or route to Truth Structure instead of writing a mixed document
6. Capture decision context from the task conversation: ask whether the user provided a product or technical decision, rationale, constraint, tradeoff, rejection reason, or scope boundary. Preserve concise user-provided decision rationale in Sync Intent before truth edits, route it to Product Decisions, Engineering Decisions, Rationale, Capability Scope, Non-Goals, Maintenance Notes, or the relevant workflow/contract section, and report whether it was placed, skipped because none was provided, or needs manual handoff.
7. Update engineering truth first after code changes. Product truth is opt-in for externally visible promises, product boundaries, APIs, acceptance criteria, or explicit user/product evidence.
8. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
9. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
10. Fill Sync Intent before editing truth docs or truth routing files:
- Changed code reviewed: functional files, tests, configs, generated outputs, or other implementation evidence inspected
- Affected route/truth owner: bounded route area or canonical truth owner that maps the change
- Target truth docs: docs expected to change, or docs reviewed and left unchanged
- Intended update: claim/doc/routing update planned before writing
- Evidence to verify: checkout evidence that will support, narrow, remove, or record each claim for manual handoff
- User-provided decisions/rationale: decisions, rationale, constraints, tradeoffs, rejection reasons, or scope boundaries from the current task conversation, or "none provided"
- No-update-needed rationale: why mapped truth is already current when no truth doc should change
- Blockers: missing routing, ambiguous ownership, failed verification, unavailable evidence, or off-boundary write needs
11. Only edit allowed truth docs/routes after Sync Intent is clear; if ownership is ambiguous, repair topology first when the repair is safe and in scope, otherwise stop and recommend Truth Structure instead of guessing.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Topology review and repair:
- before updating truth docs, verify the changed code resolves to a specific behavior-owned area and bounded truth owner
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, do not create another generic truth doc
- run Truth Structure before syncing when topology repair is safe and in scope
- block and recommend Truth Structure when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that require structure repair
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, run Truth Structure before syncing when topology repair is safe and in scope
- safe in-scope topology repair may update truth routing files and create or update bounded leaf truth docs needed to map the changed functional code; keep the repair limited to the affected route owner
- stop and recommend Truth Structure only when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that required structure repair
- do not create another generic truth doc
- README.md files are indexes, not Truth Sync targets
- must not append behavior details to a README.md index
- create or update a bounded leaf truth doc when behavior changes do not fit an existing leaf doc
Truth-doc ownership gate:
- before editing or relying on changed functional files and impacted truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if an impacted doc is broad, mixed-owner, index-like, or the update spans independent behavior owners, run Truth Structure before syncing when safe and in scope; otherwise block and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
Truth-doc shape repair gate:
- Truth Sync may restructure only truth docs impacted by the current functional-code change.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Evidence Gate:
- route-first: map changed functional files to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, Product Decisions, and Rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or block unsupported claims
- if no impacted doc changed, report why truth was already current or why sync was skipped
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and ContextPack may guide routing, context selection, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
- write engineering truth under docs/truthmark/engineering; product truth updates under docs/truthmark/product are allowed only for explicit current product behavior changes
Optional validation tooling:
- you may run truthmark check when local tooling is available
- you may validate the final report with `truthmark validate sync-report <report-file> --json` when available
- do not require the truthmark binary; direct checkout inspection is the canonical path
- optional validation must not replace agent judgment about docs and routing
- update Product Decisions and Rationale when a behavior change comes from a decision change
Helper status reporting:
- Validate the report body before adding this validator's own success status; the body may omit `validate-sync-report` while validation is pending.
- After `truthmark validate sync-report <report-file> --json` returns `data.validation.ok: true`, append or update `validate-sync-report: ran, passed` in the final report.
- If the installed Truthmark CLI is unavailable or the helper is skipped, record `validate-sync-report: skipped, <reason>` and manually validate the report shape.
- Record `validate-write-lease: ran, passed` only after validating a concrete write lease; otherwise use a truthful skipped status such as `skipped, no write lease used`.
- Helper output is derived evidence and never replaces direct checkout inspection, evidence review, or parent acceptance.
- update Product Decisions only in product truth and Engineering Decisions only in engineering truth when evidence supports the lane-specific decision change
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Parent post-sync verification:
- verify only truth docs and leased truth routing files changed during sync
- block on any unrelated diff caused by the sync step
- block if functional code changed during sync
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and required report fields before accepting it
- stop on any unrelated diff caused by the sync step
- stop if functional code changed during sync
- validate the final report against the structured Truth Sync report contract, including Claim, indented Evidence, and Result values supported, narrowed, removed, or blocked under Evidence checked
- verify the updated docs correspond to the reviewed changed-code surface
- verify the final report records ownership review, structure requirement, split, restructure, or blocked reason when the ownership gate fired
- blocked outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
- verify the updated docs correspond to reviewed checkout evidence, changed-code impact, or a recorded stale-truth correction made within the sync write lease
- verify the final report records ownership review, structure requirement, split, restructure, or manual handoff reason when the ownership review applies
- manual handoff outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
@@ -1,6 +1,6 @@
# Truthmark Sync Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
@@ -9,20 +9,30 @@ Truth Sync: completed
Changed code reviewed:
- src/auth/session.ts
Sync Intent:
- Changed code reviewed: src/auth/session.ts
- Affected route/truth owner: docs/truthmark/routes/areas/authentication.md
- Target truth docs: docs/truthmark/engineering/behaviors/session-timeout.md
- Intended update: Update session timeout behavior.
- Evidence to verify: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
- User-provided decisions/rationale: User rationale: session timeout behavior changed for internal implementation consistency
- No-update-needed rationale: not applicable; mapped truth is stale
- Blockers: none
Ownership reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas/authentication.md
Truth docs updated:
- docs/truth/repository/overview.md
- docs/truthmark/engineering/behaviors/session-timeout.md
Decision/rationale captured:
- Placed user rationale in the bounded authentication behavior truth doc under Engineering Decisions/Rationale.
Evidence checked:
- Claim: Session timeout behavior is documented in the mapped repository truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/areas.md:11
- Claim: Session timeout behavior is documented in the bounded authentication behavior truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
Result: supported
Helper scripts:
- validate-write-lease: skipped, no write lease used
Notes:
- Updated session timeout behavior.
```
@@ -31,11 +41,12 @@ Blocked report example:
Truth Sync: blocked
Reason:
- routing repair is not allowed
- Changed code maps only to the provisional bootstrap route.
Files requiring manual review:
- docs/truthmark/areas.md
- src/auth/**
- docs/truthmark/routes/areas/repository.md
Next action:
- update routing metadata and rerun Truth Sync
- Run Truth Structure for src/auth/** before updating behavior truth.
```
@@ -1,6 +1,6 @@
# Truthmark Sync Subagents And Leases
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Claude Code subagent mode:
- use automatically when this workflow runs in Claude Code and the parent agent chooses bounded subagent fan-out
+2 -2
View File
@@ -1,4 +1,4 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
name = "truth_claim_verifier"
description = "Read-only Truthmark claim verifier for checking canonical truth against checkout evidence."
sandbox_mode = "read-only"
@@ -12,7 +12,7 @@ For every checked claim, classify the result as supported | narrowed | removed |
Do not edit files, stage changes, or invent missing behavior.
Return JSON only with keys: scope, filesReviewed, claimsChecked, evidence, unsupportedClaims, confidence, recommendedWorkflow, notes.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
"""
+3 -3
View File
@@ -1,17 +1,17 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
name = "truth_doc_reviewer"
description = "Read-only Truthmark doc reviewer for shape, decision, rationale, and evidence hygiene."
sandbox_mode = "read-only"
nickname_candidates = ["Doc Audit", "Doc Shape", "Doc Check"]
developer_instructions = """
Stay read-only.
Review assigned canonical truth docs for frontmatter, source_of_truth, required template sections, Evidence checked entries, Product Decisions, and Rationale.
Review assigned canonical truth docs for compact frontmatter, required template sections, final Source References entries, Evidence checked entries, and lane-appropriate decision sections (Product Decisions in product truth, Engineering Decisions in engineering truth).
Flag README.md files used as behavior truth targets, mixed-owner docs, and shape repairs that should move to Truth Structure.
Do not edit files, stage changes, or rewrite docs.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
"""
+1 -1
View File
@@ -1,4 +1,4 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
name = "truth_doc_writer"
description = "Write-capable Truthmark doc worker for one parent-leased truth-document shard."
sandbox_mode = "workspace-write"
+9 -2
View File
@@ -1,4 +1,4 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
name = "truth_route_auditor"
description = "Read-only Truthmark route auditor for bounded routing and ownership verification."
sandbox_mode = "read-only"
@@ -7,12 +7,19 @@ developer_instructions = """
Stay read-only.
Audit one bounded Truthmark route, area, or doc shard assigned by the parent.
Inspect .truthmark/config.yml and route files only when they exist; then inspect mapped truth docs and relevant implementation files directly.
Use a route-first bounded strategy: narrow audits inspect only the routed area and directly linked counterpart docs; root-wide health first builds a cheap route-map/index from route files, then inspects only mismatches and linked leaves.
Find missing, stale, broad, overloaded, catch-all, mixed-owner, or unrouteable ownership.
Validate route ownership against lane-specific roots and route kind:
- confirm mapped truth docs resolve to the correct lane root (product or engineering) for their kind
- flag mismatch between assigned route kind and resolved doc kind (for example, product-capability routed to engineering paths)
- verify route-doc linkage for lane pairings via realized_by and realizes before recommending edits
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the parent explicitly asks for user-visible product coverage
- treat missing product links for user-visible engineering docs as a second-pass diagnostic, not a default full-document read.
Do not edit files, stage changes, or propose broad rewrites.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Do not preload AGENTS.md, CLAUDE.md, .github/copilot-instructions.md, .cursor/skills, .antigravity/rules, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
"""
-28
View File
@@ -1,28 +0,0 @@
---
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 Check
Use this skill to audit repository truth health.
Invocations: OpenCode /skill truthmark-check; Codex /truthmark-check or $truthmark-check; Claude Code /truthmark-check; GitHub Copilot /truthmark-check; Gemini CLI /truthmark:check.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect canonical docs and relevant implementation directly.
- Report issues and suggested fixes; do not silently rewrite unrelated files.
- Direct checkout inspection is valid even when local tooling is unavailable.
- Read support/procedure.md before auditing details.
- Read support/subagents-and-leases.md before dispatching verifier subagents.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
@@ -1,37 +0,0 @@
# Truthmark Check Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark Check
Use this skill to audit repository truth health.
Invocations: OpenCode /skill truthmark-check; Codex /truthmark-check or $truthmark-check; Claude Code /truthmark-check; GitHub Copilot /truthmark-check; Gemini CLI /truthmark:check.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- inspect the configured root route index at docs/truthmark/areas.md and relevant child route files under docs/truthmark/areas/ when they exist
- check that current docs describe current code rather than historical plans
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical behavior docs keep active Product Decisions and Rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence Gate:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
@@ -1,34 +0,0 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
helpers:
validate-document-report:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- document-report
- <report-file>
- --json
inputs:
- document report file
output: json
writes: false
fallback: manually validate support/report-template.md required sections and structured Evidence checked entries
validate-write-lease:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- write-lease
- <lease-or-report-file>
- <changed-files-file>
- --json
inputs:
- lease or worker report yaml
- changed file list
output: json
writes: false
fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files
@@ -1,23 +0,0 @@
# Optional Helper CLI Policy
Generated by Truthmark 1.6.0. 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.
Runner detection:
- Check the declared Truthmark CLI runner before invoking a helper.
- Invoke helpers through the installed `truthmark validate ... --json` CLI command using argv-style arguments from helper-manifest.yml.
- If unavailable or version-mismatched, treat the helper as skipped and use the manual fallback.
- 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
Final reports should include helper status when helpers are declared for this workflow:
```md
Helper scripts:
- validate-document-report: ran, passed
- validate-write-lease: skipped, no write lease used
```
@@ -1,79 +0,0 @@
# Truthmark Document Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
# Truthmark Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Invocations: OpenCode /skill truthmark-document; Codex /truthmark-document or $truthmark-document; Claude Code /truthmark-document; GitHub Copilot /truthmark-document; Gemini CLI /truthmark:document.
Truth Document is manual and implementation-first:
- run only when the user explicitly asks to generate or update truth docs for existing behavior, or when Truth Sync, Truth Check, or Truth Structure reports implemented behavior that lacks canonical truth docs
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect existing canonical docs, implementation code, and tests directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- document current implemented behavior; do not invent future behavior or planned endpoints
- may write canonical truth docs and docs/truthmark/areas.md or relevant child route files only
- must not write functional code
- when routing is missing, stale, broad, overloaded, catch-all, or cannot map the behavior to a bounded truth owner, run Truth Structure first when routing repair is safe and in scope
- block and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- keep feature README.md files as indexes rather than truth-document targets
- create or update bounded leaf truth docs when behavior does not fit an existing leaf doc
- keep behavior truth docs behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- keep API endpoint details in the nearest contract truth doc when such a doc owns the API contract
- preserve unrelated authored content
Truth-doc ownership gate:
- before editing or relying on the implemented behavior and candidate truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise block and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence Gate:
- route-first: map the documented behavior to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, Product Decisions, and Rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or block unsupported claims
- if no truth doc changed, report why current truth was already sufficient or why documentation was blocked
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and ContextPack may guide routing, context selection, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
Truth-doc shape repair gate:
- Truth Document may restructure only truth docs for the implemented behavior being documented.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Helper status reporting:
- Validate the report body before adding this validator's own success status; the body may omit `validate-document-report` while validation is pending.
- After `truthmark validate document-report <report-file> --json` returns `data.validation.ok: true`, append or update `validate-document-report: ran, passed` in the final report.
- If the installed Truthmark CLI is unavailable or the helper is skipped, record `validate-document-report: skipped, <reason>` and manually validate the report shape.
- Record `validate-write-lease: ran, passed` only after validating a concrete write lease; otherwise use a truthful skipped status such as `skipped, no write lease used`.
- Helper output is derived evidence and never replaces direct checkout inspection, evidence review, or parent acceptance.
Parent post-document verification:
- verify only truth docs and leased truth routing files changed during document work
- block on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and required report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or blocked reason when applicable
-27
View File
@@ -1,27 +0,0 @@
---
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 Preview
Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits.
Invocations: OpenCode /skill truthmark-preview; Codex /truthmark-preview or $truthmark-preview; Claude Code /truthmark-preview; GitHub Copilot /truthmark-preview; Gemini CLI /truthmark:preview.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect only the truth docs or implementation files needed to preview ownership.
- Truth Preview is read-only; this report is intended, not authorized.
- must not edit files and must not issue write leases; do not run Truth Sync automatically, replace Truth Check, claim final correctness, or mutate code.
- Use optional read-only route-auditor evidence only when it reduces context or clarifies ownership.
- Hand off to the selected workflow after user approval.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
@@ -1,11 +0,0 @@
interface:
display_name: "Truthmark Preview"
short_description: "Preview likely workflow routing before edits; read-only and explicit"
default_prompt: "Use $truthmark-preview to preview likely Truthmark routing before edits."
policy:
allow_implicit_invocation: false
truthmark:
version: "1.6.0"
refresh_command: "truthmark init"
@@ -1,43 +0,0 @@
# Truthmark Preview Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Use this skill only when the user explicitly asks to preview Truthmark routing or workflow choice before edits.
Invocations: OpenCode /skill truthmark-preview; Codex /truthmark-preview or $truthmark-preview; Claude Code /truthmark-preview; GitHub Copilot /truthmark-preview; Gemini CLI /truthmark:preview.
Truth Preview is read-only. Its report is intended, not authorized.
Purpose:
- preview the likely Truthmark workflow, route owner, target files, expected write classes, suggested subagent use, and blocking ambiguity before edits happen
- hand off to the selected workflow after user approval
- keep the selector thin so agents can avoid loading or acting through heavier workflows prematurely
Read:
- .truthmark/config.yml, only when present
- docs/truthmark/areas.md, only when present
- relevant child route files under docs/truthmark/areas/, only when present
- relevant truth docs and implementation files needed to preview ownership
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Do not:
- must not edit files
- must not create truth docs
- must not update routing
- must not run Truth Sync automatically
- must not replace Truth Check
- must not claim final correctness
- must not issue write leases
- must not mutate code
Suggested subagent use:
- optional read-only verifier: truth_route_auditor
- write workers: none
- leases needed: none
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
@@ -1,41 +0,0 @@
# Truthmark Preview Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Report completion in this shape:
```md
Truth Preview: completed
Requested outcome:
- preview likely Truthmark workflow routing before edits
Likely workflow:
- truthmark-document
Why this workflow:
- positive trigger: document existing implemented behavior
- negative triggers considered: functional-code change, doc-first implementation, topology repair, truth audit
- forbidden adjacency considered: must not edit functional code
Likely route owner:
- route file: docs/truthmark/areas.md
- truth doc: docs/truth/example.md
- confidence: medium
Expected write classes:
- truth docs
Expected target files:
- docs/truth/example.md
Suggested subagent use:
- read-only verifiers: truth_route_auditor
- write workers: none in Preview
- leases needed: none in Preview
Blocking ambiguity:
- none identified in preview
Handoff:
- Run the selected Truthmark workflow after user approval.
```
@@ -1,10 +0,0 @@
# Truthmark Preview Subagents And Leases
Generated by Truthmark 1.6.0. 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
- dispatch read-only project agents only: truth_route_auditor
- workers inspect checkout evidence directly, return structured findings, and must not edit files
- parent supplies bounded evidence shards; workers must not preload host instruction files or repo-wide policy docs unless assigned as evidence
- Parent agent owns the final Truth Preview report
@@ -1,18 +0,0 @@
# Truthmark Realize Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Report completion in this shape:
```md
Truth Realize: completed
Truth docs used:
- docs/truth/authentication/session-timeout.md
Code updated:
- src/auth/session.ts
Verification:
- npm test -- auth
```
@@ -1,109 +0,0 @@
# Truthmark Structure Procedure
Generated by Truthmark 1.6.0. 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.
Truth Structure is agent-native:
- inspect repository layout, current docs, Truthmark config and route files when present, and relevant code directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- inspect the configured root route index at docs/truthmark/areas.md and relevant child route files under docs/truthmark/areas/ when they exist
- define areas by product or behavior ownership, not by mechanical directory mirroring
- create or repair docs/truthmark/areas.md
- create starter truth docs when useful and when they belong in the canonical current-truth surface
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, doc_type, last_reviewed, and source_of_truth inside that frontmatter.
- Starter truth docs must include ## Product Decisions and ## Rationale sections.
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
- use docs/truth/**, docs/architecture/**, or docs/standards/** for current truth destinations
- use only canonical current-truth destinations for starter truth docs
- keep active Product Decisions and Rationale in the canonical doc that owns the behavior
- preserve unrelated authored content
## New area setup
Use when a user asks to onboard a new code area into Truthmark, a new package, controller, domain, or product area lacks bounded truth ownership, or a new product area needs routing and starter truth docs.
Do:
- inspect the named code area
- infer bounded product or behavior ownership
- choose the owning route when ownership is clear; otherwise propose the route and block for review
- create or update the child route entry or file
- create starter truth docs only where current truth is missing
- report the initial truth boundary
Do not:
- do not edit functional code
- do not perform full behavior documentation unless evidence is inspected and the task explicitly asks for it
- do not patch broad or mixed-owner docs in place
- do not create generic catch-all docs
- do not treat README files as Sync targets
## Topology Governance
Truth Structure owns documentation topology. Do not depend on humans to manually organize docs/truth. Treat the configured truth root as a managed semantic root.
Inspect controllers, routes, handlers, services, packages, tests, existing truth docs, and route files; infer product and domain ownership from behavior boundaries, not from mechanical directory mirroring.
When topology pressure exists, repair structure before creating or extending truth docs.
Truth-doc ownership gate:
- before editing or relying on candidate route owners and current truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split and reroute into bounded truth docs when safe; otherwise block with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Topology pressure signals:
- one area maps broad code such as src/**, app/**, server/**, services/**, or packages/**
- one area maps multiple unrelated controllers, route groups, services, or bounded contexts
- one truth doc owns unrelated behaviors or unrelated endpoint families
- the configured truth root has many direct non-index docs
- a changed controller, route, or service cannot map to a specific behavior doc
- Truth Sync would need to create a new generic truth doc because routing is too broad
- endpoint or controller names reveal domains missing from docs/truthmark/areas/**
Use these review thresholds as guidance:
- more than 10 direct truth docs in one folder
- more than 15 leaf areas in one child route file
- more than 8 truth docs mapped to one area
- more than 5 controllers mapped through one catch-all area
Repair rules:
- split broad, overloaded, or catch-all areas into behavior-owned child route files
- split mixed-owner truth docs into bounded owner docs before adding new behavior claims
- create route files under docs/truthmark/areas/ when a product/domain boundary is clear
- create behavior truth docs under the configured truth root only when behavior lacks a current doc
- README.md files are indexes, not Truth Sync targets
- prefer bounded leaf truth docs at <truth-root>/<domain>/<behavior>.md
- keep behavior truth docs behavior-oriented, not endpoint-oriented
- keep API endpoint details in the nearest contract truth doc when such a doc exists
- update routing so future Truth Sync can target small docs
- preserve existing authored docs; move or rewrite only when needed to remove ambiguity
- report Truth docs split when one broad or mixed-owner truth doc becomes multiple bounded docs
Truth-doc shape repair gate:
- Truth Structure may restructure broader routed docs when topology, ownership, or doc-shape repair is already in scope.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- report docs restructured and why a narrow edit was not sufficient
Evidence Gate:
- apply the Evidence Gate before finishing when Truth Structure writes routed docs, ownership claims, Product Decisions, or Rationale
- support ownership/behavior claims with topology or primary checkout evidence from layout, implementation boundaries, docs, config, route files, tests, templates, schemas, or contracts
- tests/examples/canonical docs corroborate; remove, narrow, or block unsupported claims
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
- Do not finish topology repair with routed canonical current-truth docs missing Product Decisions or Rationale sections.
- If an existing canonical doc lacks either section, add the missing heading beside Current Behavior with a concise current-state placeholder or active decision.
Portable fallback:
- If this skill surface is unavailable, perform the same workflow directly from committed repository files.
- Do not require the truthmark CLI.
- Inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and representative implementation code.
- Use a subagent only when the host supports that pattern; otherwise perform the topology repair inline.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
@@ -1,35 +0,0 @@
# Truthmark Structure Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Report completion in this shape:
```md
Truth Structure: completed
Topology reviewed:
- controllers: src/auth/**
- docs root: docs/truth
- route files: docs/truthmark/areas.md
Areas reviewed:
- src/auth/**
Routing updated:
- docs/truthmark/areas.md
Initial truth boundary:
- Area: Authentication
- Code: src/auth/**
- Truth owner: docs/truth/authentication/session.md
- Scope: session behavior only
Truth docs created:
- docs/truth/authentication/session.md
Truth docs split:
- docs/truth/authentication/README.md -> docs/truth/authentication/session.md
Truth docs restructured:
- docs/truth/authentication/README.md
Evidence checked:
- Claim: Session behavior belongs to a dedicated Authentication truth owner.
Evidence: src/auth/** / docs/truthmark/areas.md:7
Result: supported
Topology decisions:
- Added an Authentication area because session behavior has a distinct code surface and truth owner.
Notes:
- Added an Authentication area for session behavior.
```
@@ -1,34 +0,0 @@
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
helpers:
validate-sync-report:
optional: true
runner: truthmark>=1.6.0
command:
argv:
- truthmark
- validate
- sync-report
- <report-file>
- --json
inputs:
- sync report file
output: json
writes: false
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
command:
argv:
- truthmark
- validate
- write-lease
- <lease-or-report-file>
- <changed-files-file>
- --json
inputs:
- lease or worker report yaml
- changed file list
output: json
writes: false
fallback: manually compare declared allowedWrites and forbiddenWrites with the actual changed files
@@ -1,23 +0,0 @@
# Optional Helper CLI Policy
Generated by Truthmark 1.6.0. 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.
Runner detection:
- Check the declared Truthmark CLI runner before invoking a helper.
- Invoke helpers through the installed `truthmark validate ... --json` CLI command using argv-style arguments from helper-manifest.yml.
- If unavailable or version-mismatched, treat the helper as skipped and use the manual fallback.
- 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
Final reports should include helper status when helpers are declared for this workflow:
```md
Helper scripts:
- validate-sync-report: ran, passed
- validate-write-lease: skipped, no write lease used
```
@@ -1,88 +0,0 @@
# Truthmark Sync Procedure
Generated by Truthmark 1.6.0. 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.
Explicit invocation runs immediately. Later functional-code changes reopen the finish-time requirement, and an earlier explicit run satisfies the finish gate only if no later functional-code changes occur.
Skip when changes are documentation-only, formatting-only, clearly behavior-preserving renames with no truth impact, when no Truthmark config exists yet, or when there are no functional code changes.
Parent workflow:
1. Inspect git status, staged changes, unstaged changes, and untracked files directly.
2. Inspect .truthmark/config.yml and configured route files only when they exist; then inspect relevant canonical docs.
3. Identify functional-code changes and the nearest truth docs or routing repairs.
4. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
6. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
Topology quality gate:
- before updating truth docs, verify the changed code resolves to a specific behavior-owned area and bounded truth owner
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, do not create another generic truth doc
- run Truth Structure before syncing when topology repair is safe and in scope
- block and recommend Truth Structure when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that require structure repair
- README.md files are indexes, not Truth Sync targets
- must not append behavior details to a README.md index
- create or update a bounded leaf truth doc when behavior changes do not fit an existing leaf doc
Truth-doc ownership gate:
- before editing or relying on changed functional files and impacted truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if an impacted doc is broad, mixed-owner, index-like, or the update spans independent behavior owners, run Truth Structure before syncing when safe and in scope; otherwise block and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
Product Decisions/Rationale preservation gate:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the bounded owner doc it governs; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, block with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc still has Product Decisions and Rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
When creating or updating a truth doc, inspect the routed truth kind and use the matching `docs/templates/<kind>-doc.md` template.
Supported kinds: behavior, contract, architecture, workflow, operations, and test-behavior.
Align existing docs to that template while preserving accurate authored content.
If the template is missing, use Scope, Product Decisions, Rationale, and the kind-specific current-truth section.
Teams may edit the template files under docs/templates/ to define their local truth-doc standards.
Truth-doc shape repair gate:
- Truth Sync may restructure only truth docs impacted by the current functional-code change.
- repair shape in place only after the ownership gate confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or block unsupported or stale claims
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Evidence Gate:
- route-first: map changed functional files to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, Product Decisions, and Rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or block unsupported claims
- if no impacted doc changed, report why truth was already current or why sync was skipped
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and ContextPack may guide routing, context selection, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
Optional validation tooling:
- you may run truthmark check when local tooling is available
- do not require the truthmark binary; direct checkout inspection is the canonical path
- optional validation must not replace agent judgment about docs and routing
- update Product Decisions and Rationale when a behavior change comes from a decision change
Helper status reporting:
- Validate the report body before adding this validator's own success status; the body may omit `validate-sync-report` while validation is pending.
- After `truthmark validate sync-report <report-file> --json` returns `data.validation.ok: true`, append or update `validate-sync-report: ran, passed` in the final report.
- If the installed Truthmark CLI is unavailable or the helper is skipped, record `validate-sync-report: skipped, <reason>` and manually validate the report shape.
- Record `validate-write-lease: ran, passed` only after validating a concrete write lease; otherwise use a truthful skipped status such as `skipped, no write lease used`.
- Helper output is derived evidence and never replaces direct checkout inspection, evidence review, or parent acceptance.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Parent post-sync verification:
- verify only truth docs and leased truth routing files changed during sync
- block on any unrelated diff caused by the sync step
- block if functional code changed during sync
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and required report fields before accepting it
- validate the final report against the structured Truth Sync report contract, including Claim, indented Evidence, and Result values supported, narrowed, removed, or blocked under Evidence checked
- verify the updated docs correspond to the reviewed changed-code surface
- verify the final report records ownership review, structure requirement, split, restructure, or blocked reason when the ownership gate fired
- blocked outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
@@ -1,41 +0,0 @@
# Truthmark Sync Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Report completion in this shape:
```md
Truth Sync: completed
Changed code reviewed:
- src/auth/session.ts
Ownership reviewed:
- docs/truthmark/areas.md
Truth docs updated:
- docs/truth/repository/overview.md
Evidence checked:
- Claim: Session timeout behavior is documented in the mapped repository truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/areas.md:11
Result: supported
Helper scripts:
- validate-write-lease: skipped, no write lease used
Notes:
- Updated session timeout behavior.
```
Blocked report example:
```md
Truth Sync: blocked
Reason:
- routing repair is not allowed
Files requiring manual review:
- docs/truthmark/areas.md
Next action:
- update routing metadata and rerun Truth Sync
```
+21
View File
@@ -0,0 +1,21 @@
---
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 Check
Use this skill to audit repository truth health.
Use as a Cursor Agent Skill. Cursor discovers project skills under `.cursor/skills/`, selects them from the description when relevant, and supports manual `/` invocation.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect canonical docs and relevant implementation directly.
- Report issues and suggested fixes; do not silently rewrite unrelated files.
Progressive disclosure:
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -0,0 +1,54 @@
# Truthmark Check Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Check
Use this skill to audit repository truth health.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- classify the request or changed surface as product-lane, engineering-lane, both-lane, or ambiguous for reporting only
- product-lane ownership belongs under docs/truthmark/product and describes product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane ownership belongs under docs/truthmark/engineering and describes source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane ownership uses separate product and engineering docs cross-linked in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership should be reported for manual handoff or routed to Truth Structure
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- check that current docs describe current code rather than historical plans
- keep lane and cross-lane checks route-first and bounded:
- for a narrow audit, inspect only the routed area and directly linked counterpart docs
- for root-wide truth health, first build a cheap route-map/index from route files, then inspect only mismatches and linked leaves
- inspect product counterparts for engineering docs only when route YAML claims a product relationship, or when the user explicitly asks for user-visible product coverage
- check lane root/kind alignment for product truth under docs/truthmark/product and engineering truth under docs/truthmark/engineering
- check route YAML cross-lane realized_by and realizes links for existence and lane compatibility
- report missing product links for user-visible engineering docs only as a second-pass review diagnostic, not as default full-document reads or hard errors
- check product docs do not contain engineering execution flow, generated file inventories, or CLI envelope mechanics
- check engineering docs do not contain product promises, product rationale, or Product Decisions sections
- never judge whether a product decision is commercially correct, valuable, prioritized, or desirable
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical docs keep lane-appropriate decisions and rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence checklist:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -1,6 +1,6 @@
# Truthmark Check Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
@@ -8,7 +8,7 @@ Report completion in this shape:
Truth Check: completed
Files reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Issues found:
- none
@@ -18,7 +18,7 @@ Fixes suggested:
Evidence checked:
- Finding: The root route index is present and maps repository truth owners.
Evidence: docs/truthmark/areas.md:1
Evidence: docs/truthmark/routes/areas.md:1
Suggested fix: none
Confidence: high
@@ -3,28 +3,20 @@ 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 Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Invocations: OpenCode /skill truthmark-document; Codex /truthmark-document or $truthmark-document; Claude Code /truthmark-document; GitHub Copilot /truthmark-document; Gemini CLI /truthmark:document.
Use as a Cursor Agent Skill. Cursor discovers project skills under `.cursor/skills/`, selects them from the description when relevant, and supports manual `/` invocation.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect existing canonical docs, implementation code, and tests directly.
- Document current implemented behavior; do not invent future behavior.
- May write canonical truth docs and truth routing files only; must not write functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -0,0 +1,92 @@
# Truthmark Document Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Document
Use this skill to document existing implemented behavior when no functional-code changes are required for the task.
Truth Document is manual and implementation-first:
- run only when the user explicitly asks to generate or update truth docs for existing behavior, or when Truth Sync, Truth Check, or Truth Structure reports implemented behavior that lacks canonical truth docs
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect existing canonical docs, implementation code, and tests directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- document current implemented behavior; do not invent future behavior or planned endpoints
- may write canonical truth docs and docs/truthmark/routes/areas.md or relevant child route files only
- must not write functional code
- when routing is missing, stale, broad, overloaded, catch-all, or cannot map the behavior to a bounded truth owner, run Truth Structure first when routing repair is safe and in scope
- stop and recommend Truth Structure when routing repair is unsafe, ambiguous, or outside the task boundary
- keep feature README.md files as indexes rather than truth-document targets
- create or update bounded leaf truth docs when behavior does not fit an existing leaf doc
- write product capability/boundary truth under docs/truthmark/product when documenting product promise, boundary, rationale, or user/stakeholder value
- write engineering truth under docs/truthmark/engineering when documenting implementation behavior, contracts, architecture, workflows, operations, or tests
- for both-lane documentation requests, write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- keep engineering behavior truth behavior-oriented, not endpoint-oriented, unless the endpoint itself is the behavior boundary
- keep API endpoint details in the nearest contract truth doc when such a doc owns the API contract
- preserve unrelated authored content
Truth-doc ownership review:
- before editing or relying on the implemented behavior and candidate truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if the target doc is broad, mixed-owner, index-like, or the documented behavior spans independent owners, run Truth Structure first when safe and in scope; otherwise stop and recommend Truth Structure
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Decision/Rationale preservation review:
- before any truth-doc split, restructure, or shape repair, inventory existing Product Decisions, Engineering Decisions, and Rationale sections in every source or touched truth doc
- preserve each current decision and rationale in the correct product or engineering lane owner; when splitting, move it to the new owner doc rather than deleting it or leaving it in an index
- remove or narrow a decision or rationale only when checkout evidence shows it is stale or unsupported, and report the exact claim, evidence, and result
- if ownership of a decision or rationale is unclear, stop with manual-review files instead of deleting it or guessing
- after the edit, verify every touched truth doc keeps lane-appropriate decision/rationale sections and every pre-existing entry is preserved, moved, narrowed, removed with evidence, or blocked
Evidence checklist:
- route-first: map the documented behavior to bounded route owners and primary canonical docs
- review new or changed behavior-bearing claims only in touched docs, route ownership, lane-specific decisions, and rationale
- support claims with primary checkout evidence: implementation, config, routing, generated templates, schemas, or contract definitions
- tests/examples/canonical docs corroborate; they are not sole proof when implementation conflicts
- remove, narrow, or record unsupported claims for manual handoff
- if no truth doc changed, report why current truth was already sufficient or why documentation was blocked
Repository intelligence artifacts are optional derived context: RepoIndex, RouteMap, ImpactSet, and WorkflowState/action context may guide routing, write boundaries, and verification planning when available.
They do not override checkout evidence, canonical truth docs, route files, or workflow write boundaries.
If unavailable, inspect any present Truthmark config, route files, source files, truth docs, and tests directly, then report that repository-intelligence artifacts were not generated.
When creating or updating a truth doc, inspect the routed truth kind and use the matching template under the configured Truthmark templates root.
Supported kinds: product-capability, engineering-behavior, engineering-contract, engineering-architecture, engineering-workflow, engineering-operations, and engineering-test-behavior.
Treat the HTML comments under each template section as normative authoring guidance for that section.
Align existing docs to that template and write or repair section content so it satisfies the comment guidance while preserving accurate authored content.
If the template is missing, use lane-specific sections: product truth says what must be true and why; engineering truth says how the repository currently realizes it.
Teams may edit template files under the configured Truthmark templates root to define their local truth-doc standards.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Truth-doc shape repair review:
- Truth Document may restructure only truth docs for the implemented behavior being documented.
- repair shape in place only after the ownership review confirms the doc is the right bounded owner
- use Truth Structure for ownership splits; do not treat broad or mixed-owner docs as in-place repair work
- repair shape when a narrow edit would make truth worse: missing template sections, stale evidence conflicts, cross-section updates within one owner, or wrong frontmatter/source/headings
- preserve supported claims; remove, narrow, or record unsupported or stale claims for manual handoff
- report docs restructured and why a narrow edit was not sufficient
Maintain architecture docs only for structure-level changes: system structure, module boundaries, runtime topology, persistence boundaries, cross-cutting contracts, or generated-surface ownership.
Keep ordinary behavior, endpoints, UI copy, validation rules, and bug fixes in behavior or contract docs unless they change those boundaries.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
Optional validation: when local tooling is available, you may validate the final report with `truthmark validate document-report <report-file> --json`; direct checkout inspection and evidence review remain authoritative.
Parent post-document verification:
- verify only truth docs and leased truth routing files changed during document work
- stop on functional code, generated host surfaces, or unrelated diffs caused by document work
- for each write lease, validate the worker report against the actual worker diff, allowedWrites, forbiddenWrites, identity fields, filesChanged, offLeaseChanges, blockers, and expected report fields before accepting it
- verify the final report records ownership review, structure requirement, restructure, routing update, or manual handoff reason when applicable
@@ -1,6 +1,6 @@
# Truthmark Document Report Template
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
@@ -10,28 +10,25 @@ Implementation reviewed:
- src/routing/area-resolver.ts
Ownership reviewed:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Truth docs created:
- docs/truth/contracts.md
- docs/truthmark/engineering/contracts/routing.md
Truth docs updated:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Truth docs restructured:
- docs/truth/check-diagnostics.md
- docs/truthmark/engineering/behaviors/check-diagnostics.md
Routing updated:
- docs/truthmark/areas.md
- docs/truthmark/routes/areas.md
Evidence checked:
- Claim: Route resolution behavior is documented in the contracts truth doc.
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/areas.md:9
Evidence: src/routing/area-resolver.ts:14 / docs/truthmark/routes/areas.md:9
Result: supported
Helper scripts:
- validate-write-lease: skipped, no write lease used
Notes:
- Documented routing and behavior from route handlers and tests.
```
@@ -3,24 +3,20 @@ 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 Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Use as a Cursor Agent Skill. Cursor discovers project skills under `.cursor/skills/`, selects them from the description when relevant, and supports manual `/` invocation.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Read the source truth docs, inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist, then inspect tests and relevant functional code directly.
- Truth docs lead; code follows.
- may write functional code only; must not edit truth docs or truth routing while realizing those docs.
- Read support/procedure.md before changing code.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -1,13 +1,11 @@
# Truthmark Realize Procedure
Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
# Truthmark Realize
Use this skill only when the user explicitly asks to realize truth docs into code.
Invocations: OpenCode /skill truthmark-realize; Codex /truthmark-realize or $truthmark-realize; Claude Code /truthmark-realize; GitHub Copilot /truthmark-realize; Gemini CLI /truthmark:realize.
Truth Realize is doc-first:
- truth docs lead
@@ -17,23 +15,24 @@ Truth Realize is doc-first:
Workflow:
1. Read the updated truth docs named by the user, or infer the relevant docs from configured route files when present.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then read tests and the relevant functional code.
2. Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then read tests and the relevant functional code.
3. Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
Truth-doc ownership gate:
Truth-doc ownership review:
- before editing or relying on source truth docs before writing code, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, block before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Blocked reason as applicable
- if a source truth doc is broad, mixed-owner, index-like, unrouteable, stale, or conflicts with implementation evidence, stop before writing code and recommend Truth Structure or Truth Document
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
4. Update functional code only so implementation matches bounded, current truth claims from the source docs.
5. Do not edit truth docs or truth routing while realizing those docs.
6. Run relevant tests for the changed code.
7. Report changed code files and verification steps.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Read and write boundaries:
@@ -0,0 +1,19 @@
# Truthmark Realize Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Realize: completed
Truth docs used:
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Code updated:
- src/auth/session.ts
Verification:
- npm test -- auth
```
@@ -3,25 +3,20 @@ 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 Structure
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.
Use as a Cursor Agent Skill. Cursor discovers project skills under `.cursor/skills/`, selects them from the description when relevant, and supports manual `/` invocation.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect current docs and relevant code directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect current docs and relevant code directly.
- Define areas by product or behavior ownership, not by mechanical directory mirroring.
- Do not edit functional code.
- Read support/procedure.md before writing route or starter truth-doc changes.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -0,0 +1,101 @@
# Truthmark Structure Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Use this skill to design or repair Truthmark area structure.
Truth Structure is agent-native:
- inspect repository layout, current docs, Truthmark config and route files when present, and relevant code directly
- Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- Lane classification:
- before writing canonical truth docs, classify the request or change as product-lane, engineering-lane, both-lane, or ambiguous
- product-lane writes belong under docs/truthmark/product and state product promises, boundaries, rationale, decisions, and success criteria
- engineering-lane writes belong under docs/truthmark/engineering and state source-backed current realization, contracts, architecture, workflows, operations, or tests
- both-lane work must write separate product and engineering docs and cross-link them in route YAML with realized_by and realizes, not in doc frontmatter
- ambiguous lane ownership must stop or invoke Truth Structure instead of writing a mixed document
- Do not make product docs a summary of engineering docs. Do not make engineering docs a detailed version of product docs. Product truth says what must be true and why. Engineering truth says how the repository currently realizes it.
- inspect the configured root route index at docs/truthmark/routes/areas.md and relevant child route files under docs/truthmark/routes/areas/ when they exist
- define areas by product or behavior ownership, not by mechanical directory mirroring
- create or repair docs/truthmark/routes/areas.md
- create skeletal starter truth docs only when missing ownership would otherwise block future workflows
- Starter truth docs must use closed YAML frontmatter bounded by opening and closing --- lines; include status, truth_kind, and last_reviewed inside that frontmatter. Put source references in the final ## Source References section, not in frontmatter.
- Starter truth docs are ownership anchors, not behavior writeups: include only the title, bounded area/scope, and Source References needed to make routing explicit.
- Starter truth docs must keep product and engineering truth in separate files; leave substantive behavior, contract, architecture, workflow, operations, or test prose to Truth Document.
- use docs/truthmark/product/** for product truth destinations
- use docs/truthmark/engineering/** for engineering truth destinations
- use only canonical current-truth destinations for starter truth docs
- keep Product Decisions in product truth and Engineering Decisions in engineering truth when selecting destinations; report any relocation need instead of rewriting decision prose during topology review
- preserve unrelated authored content
## New area setup
Use when a user asks to onboard a new code area into Truthmark, a new package, controller, domain, or product area lacks bounded truth ownership, or a new product area needs routing and starter truth docs.
Do:
- inspect the named code area
- infer bounded product or behavior ownership
- choose the owning route when ownership is clear; otherwise propose the route and stop for manual review
- create or update the child route entry or file
- create starter truth docs only where current truth is missing
- report the initial truth boundary
Do not:
- do not edit functional code
- do not perform full behavior documentation unless evidence is inspected and the task explicitly asks for it
- do not patch broad or mixed-owner docs in place
- do not create generic catch-all docs
- do not treat README files as Sync targets
## Topology Governance
Truth Structure owns documentation topology, lane splits, decision relocation, and relationship repair. Do not depend on humans to manually organize docs/truthmark/product or docs/truthmark/engineering. Treat both configured lane roots as managed semantic roots.
Inspect controllers, routes, handlers, services, packages, tests, existing truth docs, and route files; infer product and domain ownership from behavior boundaries, not from mechanical directory mirroring.
When topology pressure exists, repair route structure before creating or extending truth ownership anchors.
Truth-doc ownership review:
- before editing or relying on candidate route owners and current truth docs, verify each target/source truth doc is a bounded owner for the behavior
- if a target/source doc mixes independent owners, spans unrelated behaviors, acts as an index, or needs cross-owner edits, do not patch or in-place repair it
- if a truth doc mixes independent owners, route ownership is broad, or a split is required for bounded ownership, split or reroute only the ownership topology when safe; otherwise stop with manual-review files
- report Ownership reviewed, Structure required, Truth docs split, Truth docs restructured, or Manual handoff reason as applicable
Topology pressure signals:
- one area maps broad code such as src/**, app/**, server/**, services/**, or packages/**
- one area maps multiple unrelated controllers, route groups, services, or bounded contexts
- one truth doc owns unrelated behaviors or unrelated endpoint families
- either configured lane root has many direct non-index docs
- a changed controller, route, or service cannot map to a specific behavior doc
- Truth Sync would need to create a new generic truth doc because routing is too broad
- endpoint or controller names reveal domains missing from docs/truthmark/routes/areas/**
Use these review thresholds as guidance:
- more than 10 direct truth docs in one folder
- more than 15 leaf areas in one child route file
- more than 8 truth docs mapped to one area
- more than 5 controllers mapped through one catch-all area
Repair rules:
- split broad, overloaded, or catch-all areas into behavior-owned child route files
- split or flag mixed-owner truth docs for bounded owners before any workflow adds new behavior claims
- create route files under docs/truthmark/routes/areas/ when a product/domain boundary is clear
- create skeletal engineering ownership anchors under docs/truthmark/engineering only when behavior lacks a current owner
- create skeletal product ownership anchors under docs/truthmark/product only when product promise, boundary, rationale, or user-visible capability ownership is in scope
- README.md files are indexes, not Truth Sync targets
- prefer bounded product docs under product/capabilities or product/decisions and engineering docs under engineering/<kind>/<surface>.md
- keep behavior truth docs behavior-oriented, not endpoint-oriented
- keep API endpoint details in the nearest contract truth doc when such a doc exists
- update routing so future Truth Sync can target small docs
- preserve existing authored docs; move or rewrite only when needed to remove ambiguity
- report Truth docs split when one broad or mixed-owner truth doc becomes multiple bounded docs
Evidence checklist:
- apply the evidence checklist before finishing when Truth Structure writes routed docs, ownership claims, lane-specific decisions, or rationale
- support ownership/behavior claims with topology or primary checkout evidence from layout, implementation boundaries, docs, config, route files, tests, templates, schemas, or contracts
- tests/examples/canonical docs corroborate; remove, narrow, or record unsupported claims for manual handoff
- Do not finish topology repair with mixed product/engineering authority in a single canonical truth doc.
- If an existing canonical doc has wrong-lane sections, report the lane repair needed and only move content when the topology split explicitly requires it.
Portable fallback:
- If this skill surface is unavailable, perform the same workflow directly from committed repository files.
- Do not require the truthmark CLI.
- Inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and representative implementation code.
- Use a subagent only when the host supports that pattern; otherwise perform the topology repair inline.
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Product decisions belong in product truth; engineering, architecture, contract, workflow, and operational decisions belong in engineering truth.
@@ -0,0 +1,38 @@
# Truthmark Structure Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Structure: completed
Topology reviewed:
- controllers: src/auth/**
- product docs root: docs/truthmark/product
- engineering docs root: docs/truthmark/engineering
- route files: docs/truthmark/routes/areas.md
Areas reviewed:
- src/auth/**
Routing updated:
- docs/truthmark/routes/areas.md
Initial truth boundary:
- Area: Authentication
- Code: src/auth/**
- Product owner: docs/truthmark/product/capabilities/authentication-session.md
- Engineering owner: docs/truthmark/engineering/behaviors/authentication-session.md
- Scope: session behavior only
Truth docs created:
- docs/truthmark/product/capabilities/authentication-session.md
- docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs split:
- docs/truthmark/truth/authentication/README.md -> docs/truthmark/product/capabilities/authentication-session.md and docs/truthmark/engineering/behaviors/authentication-session.md
Truth docs restructured:
- docs/truthmark/truth/authentication/README.md
Evidence checked:
- Claim: Session behavior belongs to a dedicated Authentication truth owner.
Evidence: src/auth/** / docs/truthmark/routes/areas.md:7
Result: supported
Topology decisions:
- Added an Authentication area because session behavior has a distinct code surface and truth owner.
Notes:
- Added an Authentication area for session behavior.
```
@@ -3,29 +3,21 @@ 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 Sync
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.
Use as a Cursor Agent Skill. Cursor discovers project skills under `.cursor/skills/`, selects them from the description when relevant, and supports manual `/` invocation.
Quick procedure:
- Follow repository instruction files that exist in this checkout; do not assume any optional policy path exists.
- Skip docs-only, formatting-only, behavior-preserving renames with no truth impact, missing config, and no-code changes.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/areas.md; docs/truthmark/areas/) only when they exist; then inspect relevant canonical docs directly.
- Inspect .truthmark/config.yml and configured route files (docs/truthmark/routes/areas.md; docs/truthmark/routes/areas/) only when they exist; then inspect relevant canonical docs directly.
- direct checkout inspection is the canonical path; do not require the truthmark binary.
- May write canonical truth docs and truth routing files only; must not rewrite functional code.
- Read support/procedure.md before editing truth docs.
- Read support/subagents-and-leases.md before dispatching or accepting worker output.
- Read support/report-template.md before the final report.
Progressive disclosure:
- support/procedure.md
- support/report-template.md
- support/subagents-and-leases.md
- helper-manifest.yml
- support/helper-policy.md
- support/procedure.md — read before edits or detailed auditing; contains core review questions
- support/report-template.md — read before the final report
@@ -0,0 +1,70 @@
# Truthmark Sync Procedure
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
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.
Explicit invocation runs immediately when the user directly requests this workflow. Later functional-code changes need a fresh finish-time review, and an earlier explicit run satisfies the finish-time review only if no later functional-code changes occur.
Skip when changes are documentation-only, formatting-only, clearly behavior-preserving renames with no truth impact, when no Truthmark config exists yet, or when there are no functional code changes.
Parent workflow:
1. Inspect git status, staged changes, unstaged changes, and untracked files directly.
2. Inspect .truthmark/config.yml and configured route files only when they exist; then inspect relevant canonical docs.
3. Identify functional-code changes and the nearest truth docs or routing repairs.
4. Evidence authority:
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
- Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
5. Product truth decision:
- ask whether a user-visible promise, capability boundary, API contract, acceptance criterion, or explicit user/product evidence changed
- if yes, update or route product truth under docs/truthmark/product as well as engineering truth under docs/truthmark/engineering
- if no, default to engineering truth under docs/truthmark/engineering for internal implementation changes
- when both lanes change, keep separate product and engineering docs cross-linked through route YAML with realized_by and realizes
- when ownership is ambiguous, stop or route to Truth Structure instead of writing a mixed document
6. Capture decision context from the task conversation: ask whether the user provided a product or technical decision, rationale, constraint, tradeoff, rejection reason, or scope boundary. Preserve concise user-provided decision rationale in Sync Intent before truth edits, route it to Product Decisions, Engineering Decisions, Rationale, Capability Scope, Non-Goals, Maintenance Notes, or the relevant workflow/contract section, and report whether it was placed, skipped because none was provided, or needs manual handoff.
7. Update engineering truth first after code changes. Product truth is opt-in for externally visible promises, product boundaries, APIs, acceptance criteria, or explicit user/product evidence.
8. Code verification is parent-owned: follow repository instructions and task context, and report what ran or why it did not run.
9. Dispatch bounded Truth Sync workers only when the host supports subagent dispatch and the acting agent chooses that path; otherwise execute the same sync task inline.
10. Fill Sync Intent before editing truth docs or truth routing files:
- Changed code reviewed: functional files, tests, configs, generated outputs, or other implementation evidence inspected
- Affected route/truth owner: bounded route area or canonical truth owner that maps the change
- Target truth docs: docs expected to change, or docs reviewed and left unchanged
- Intended update: claim/doc/routing update planned before writing
- Evidence to verify: checkout evidence that will support, narrow, remove, or record each claim for manual handoff
- User-provided decisions/rationale: decisions, rationale, constraints, tradeoffs, rejection reasons, or scope boundaries from the current task conversation, or "none provided"
- No-update-needed rationale: why mapped truth is already current when no truth doc should change
- Blockers: missing routing, ambiguous ownership, failed verification, unavailable evidence, or off-boundary write needs
11. Only edit allowed truth docs/routes after Sync Intent is clear; if ownership is ambiguous, repair topology first when the repair is safe and in scope, otherwise stop and recommend Truth Structure instead of guessing.
Truth-doc prose style:
- Use professional, plain technical prose. Prefer specific current-state claims over promotional, symbolic, or generic significance language.
- Avoid common AI-writing tells: pivotal, crucial, underscores, serves as, stands as, showcases, landscape, vague expert attributions, and generic upbeat conclusions.
- Keep claims evidence-backed and diff-friendly: one durable claim per bullet or line; paragraphs should be no longer than one or two short sentences.
- Do not add personality, rhetorical flourish, first-person commentary, or marketing tone.
- Rewrite dense or formulaic prose only when it improves readability without removing scope, evidence, decisions, or source references.
Topology review and repair:
- before updating truth docs, verify the changed code resolves to a specific behavior-owned area and bounded truth owner
- if routing is missing, stale, broad, overloaded, catch-all route only, or cannot map changed code to a bounded truth owner, run Truth Structure before syncing when topology repair is safe and in scope
- safe in-scope topology repair may update truth routing files and create or update bounded leaf truth docs needed to map the changed functional code; keep the repair limited to the affected route owner
- stop and recommend Truth Structure only when topology repair is unsafe, ambiguous, or outside the current task boundary
- report the route files and changed code paths that required structure repair
- do not create another generic truth doc
- README.md files are indexes, not Truth Sync targets
- must not append behavior details to a README.md index
- write engineering truth under docs/truthmark/engineering; product truth updates under docs/truthmark/product are allowed only for explicit current product behavior changes
Optional validation tooling:
- you may run truthmark check when local tooling is available
- you may validate the final report with `truthmark validate sync-report <report-file> --json` when available
- do not require the truthmark binary; direct checkout inspection is the canonical path
- optional validation must not replace agent judgment about docs and routing
- update Product Decisions only in product truth and Engineering Decisions only in engineering truth when evidence supports the lane-specific decision change
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/routes/areas.md
- Area route files, when present: docs/truthmark/routes/areas/**/*.md
- Product truth docs, when present: docs/truthmark/product/**/*.md
- Engineering truth docs, when present: docs/truthmark/engineering/**/*.md
Parent post-sync verification:
- verify only truth docs and leased truth routing files changed during sync
- stop on any unrelated diff caused by the sync step
- stop if functional code changed during sync
- validate the final report against the structured Truth Sync report contract, including Claim, indented Evidence, and Result values supported, narrowed, removed, or blocked under Evidence checked
- verify the updated docs correspond to reviewed checkout evidence, changed-code impact, or a recorded stale-truth correction made within the sync write lease
- verify the final report records ownership review, structure requirement, split, restructure, or manual handoff reason when the ownership review applies
- manual handoff outcomes must preserve the working tree as-is: no rollback, no post-block cleanup edits, and manual-review reporting of any remaining files
@@ -0,0 +1,52 @@
# Truthmark Sync Report Template
Truthmark-managed generated file. Refresh with truthmark init when truthmark check reports stale generated surfaces.
Report completion in this shape:
```md
Truth Sync: completed
Changed code reviewed:
- src/auth/session.ts
Sync Intent:
- Changed code reviewed: src/auth/session.ts
- Affected route/truth owner: docs/truthmark/routes/areas/authentication.md
- Target truth docs: docs/truthmark/engineering/behaviors/session-timeout.md
- Intended update: Update session timeout behavior.
- Evidence to verify: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
- User-provided decisions/rationale: User rationale: session timeout behavior changed for internal implementation consistency
- No-update-needed rationale: not applicable; mapped truth is stale
- Blockers: none
Ownership reviewed:
- docs/truthmark/routes/areas/authentication.md
Truth docs updated:
- docs/truthmark/engineering/behaviors/session-timeout.md
Decision/rationale captured:
- Placed user rationale in the bounded authentication behavior truth doc under Engineering Decisions/Rationale.
Evidence checked:
- Claim: Session timeout behavior is documented in the bounded authentication behavior truth doc.
Evidence: src/auth/session.ts:12 / docs/truthmark/routes/areas/authentication.md:11
Result: supported
Notes:
- Updated session timeout behavior.
```
Blocked report example:
```md
Truth Sync: blocked
Reason:
- Changed code maps only to the provisional bootstrap route.
Files requiring manual review:
- src/auth/**
- docs/truthmark/routes/areas/repository.md
Next action:
- Run Truth Structure for src/auth/** before updating behavior truth.
```
-22
View File
@@ -1,22 +0,0 @@
---
name: truth-claim-verifier
description: Read-only Truthmark claim verifier for checking canonical truth against checkout evidence.
kind: local
tools: [read_file, grep_search]
---
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Manual invocation: @truth-claim-verifier
Stay read-only.
Verify the behavior-bearing truth claims assigned by the parent against primary checkout evidence.
Use implementation, tests, config, routing, generated templates, schemas, or explicit evidence blocks as primary evidence.
Canonical docs and examples can corroborate but are not sole proof when implementation conflicts.
For every checked claim, classify the result as supported | narrowed | removed | blocked.
Do not edit files, stage changes, or invent missing behavior.
Return JSON only with keys: scope, filesReviewed, claimsChecked, evidence, unsupportedClaims, confidence, recommendedWorkflow, notes.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
-21
View File
@@ -1,21 +0,0 @@
---
name: truth-doc-reviewer
description: Read-only Truthmark doc reviewer for shape, decision, rationale, and evidence hygiene.
kind: local
tools: [read_file, grep_search]
---
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Manual invocation: @truth-doc-reviewer
Stay read-only.
Review assigned canonical truth docs for frontmatter, source_of_truth, required template sections, Evidence checked entries, Product Decisions, and Rationale.
Flag README.md files used as behavior truth targets, mixed-owner docs, and shape repairs that should move to Truth Structure.
Do not edit files, stage changes, or rewrite docs.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
-22
View File
@@ -1,22 +0,0 @@
---
name: truth-route-auditor
description: Read-only Truthmark route auditor for bounded routing and ownership verification.
kind: local
tools: [read_file, grep_search]
---
# Generated by Truthmark 1.6.0. Rerun truthmark init after upgrades.
Manual invocation: @truth-route-auditor
Stay read-only.
Audit one bounded Truthmark route, area, or doc shard assigned by the parent.
Inspect .truthmark/config.yml and route files only when they exist; then inspect mapped truth docs and relevant implementation files directly.
Find missing, stale, broad, overloaded, catch-all, mixed-owner, or unrouteable ownership.
Do not edit files, stage changes, or propose broad rewrites.
Return JSON only with keys: scope, filesReviewed, findings, evidence, confidence, recommendedWorkflow, notes.
recommendedWorkflow must be one of: none, truthmark-document, truthmark-structure.
Context boundary:
Do not preload AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, or repo-wide policy docs unless the parent explicitly assigns them as evidence.
Use only the parent-assigned shard plus required checkout evidence files.
Return findings only; the parent workflow owns repository-policy interpretation, final decisions, and all writes.
-69
View File
@@ -1,69 +0,0 @@
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."
prompt = '''
---
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 Check
Use this skill to audit repository truth health.
Invocations: OpenCode /skill truthmark-check; Codex /truthmark-check or $truthmark-check; Claude Code /truthmark-check; GitHub Copilot /truthmark-check; Gemini CLI /truthmark:check.
Truth Check is agent-led:
- inspect .truthmark/config.yml and configured route files only when they exist; then inspect canonical docs and relevant implementation directly
- Repository instruction files and explicitly configured policy docs remain instruction authority when present; do not assume a repository uses any particular policy path.
Implementation code and canonical truth docs are inspected evidence for current behavior; they do not silently override workflow write boundaries.
- inspect the configured root route index at docs/truthmark/areas.md and relevant child route files under docs/truthmark/areas/ when they exist
- check that current docs describe current code rather than historical plans
- check that route files map code surfaces to canonical truth docs when route files exist
- check for broad, catch-all, index-like, or mixed-owner truth docs and report them as topology issues requiring Truth Structure
- check that canonical behavior docs keep active Product Decisions and Rationale sections
- optionally run truthmark check when local tooling is available
- must not require the truthmark binary; direct inspection is always valid
- report issues and suggested fixes without silently rewriting unrelated files
- if follow-up docs edits are needed for mixed-owner docs, run or recommend Truth Structure before editing
Evidence Gate:
- support each finding and suggested fix with evidence from config, route files, canonical docs, implementation, templates, or tests
- canonical docs are context, not sole proof when implementation conflicts
- remove unsupported findings or mark open questions; validate changed claims if you edit docs
Truthmark hierarchy hints:
- Config, when present: .truthmark/config.yml
- Root route index, when present: docs/truthmark/areas.md
- Area route files, when present: docs/truthmark/areas/**/*.md
- Truth docs, when present: docs/truth/**/*.md
Decision truth lives in the canonical doc it governs; date active decisions inline when added or changed.
Do not create separate active-decision ADR/planning logs; replace the active decision and let Git history carry the audit trail.
Update Product Decisions and Rationale when a decision changes behavior.
Report completion in this shape:
```md
Truth Check: completed
Files reviewed:
- docs/truthmark/areas.md
Issues found:
- none
Fixes suggested:
- none
Evidence checked:
- Finding: The root route index is present and maps repository truth owners.
Evidence: docs/truthmark/areas.md:1
Suggested fix: none
Confidence: high
Validation:
- truthmark check
```
User focus or arguments: {{args}}
'''

Some files were not shown because too many files have changed in this diff Show More