* 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>
5.0 KiB
status, doc_type, last_reviewed, source_of_truth
| status | doc_type | last_reviewed | source_of_truth | ||||
|---|---|---|---|---|---|---|---|
| active | standard | 2026-05-16 |
|
Versioning
Trigger
Use this standard only when a task changes or asks whether to change:
package.jsonversion- root package entries in
package-lock.json - release/version policy
- a
changes/note withVersion action: patch,minor, ormajor
Do not load this standard for ordinary docs, workflow text, generated-surface, or code changes unless a package version decision is in scope.
Goal
Choose Truthmark's own package version using Semantic Versioning 2.0.0. Normal committed versions use MAJOR.MINOR.PATCH.
package.json is the maintained version source. package-lock.json follows it. Generated workflow surfaces are refreshed by rendered-content comparison plus truthmark init; they do not carry package-version freshness markers.
This is an internal repository maintenance standard. It is not a user-facing feature, installed workflow feature, or generated workflow capability.
First Gate
If the change does not alter published package behavior, do not bump the package version.
No bump examples:
- internal standards for this repository
- agent routing guidance for maintainers
- documentation corrections with no published behavior change
- tests, refactors, formatting, or cleanup with no published behavior change
Decision Table
| Change | Version action |
|---|---|
| Backward-incompatible public API or shipped workflow change | MAJOR + 1, reset MINOR and PATCH to 0 |
| Backward-compatible public API addition, generated-surface capability, shipped workflow capability, deprecation, or substantial user-visible improvement | MINOR + 1, reset PATCH to 0 |
| Backward-compatible bug fix, diagnostic correction, packaging fix, or published documentation correction | PATCH + 1 |
| Internal-only maintenance with no published package behavior change | no version change |
Do not use prerelease or build metadata in the committed package version unless the release task explicitly asks for it.
Public API For Bump Decisions
Treat these as published package behavior:
- CLI command names, options, exit behavior, result envelopes, and diagnostics contracts
.truthmark/config.ymlschema and hierarchy behavior- generated instruction blocks, skill metadata, prompt files, helper manifests, and managed refresh markers produced by the package
- installed workflow boundaries, trigger contracts, report shapes, and completion gates as shipped package behavior
- runtime compatibility and npm package contents
Version Change Procedure
Before changing a version number:
- Identify the previous released version from the latest lower
release/<version>tag. - Inspect all pending release payload since that previous version: committed branch diff plus staged, unstaged, and untracked files that will ship.
- Classify the payload with the decision table above before editing
package.json. - If the requested new version is lower than the required bump, block the edit and report the required version. Do not accept a patch request for a minor or major payload.
When changing a version number:
- State the previous version, requested version, required bump class, and SemVer rationale in the handoff, PR, or release note.
- Create or update the matching
changes/note from change-notes.md, covering the full release payload since the previous version. - Update
package.jsonand the root package entries inpackage-lock.jsontogether. - Rerun
truthmark initwhen generated surfaces need refresh, then inspect the generated-surface diffs. Generated surfaces use managed/stale-surface wording instead of package-version freshness markers; helper manifests name the runner and command shape without pinning the package version. - Run the focused verification required by testing-and-verification.md. For release-sensitive package version changes,
npm run release:checkis the default final gate.
Agent Output
When reporting a package version decision, state only:
- chosen version action
- one-line SemVer rationale
- whether the requested version matched the required bump
- files changed or intentionally left unchanged
- matching change note path when a version changes
- verification run or explicitly skipped