mustflow 2.112.7 → 2.112.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -36,7 +36,7 @@ export function getRepoRelatedFilesHelp(lang = 'en') {
36
36
  examples: [
37
37
  'mf script-pack run repo/related-files map src/cli/index.ts --json',
38
38
  'mf script-pack run repo/related-files map src/core/code-outline.ts --max-candidates 50 --json',
39
- 'mf script-pack run repo/related-files map src tests/cli/package.test.js --max-files 500 --json',
39
+ 'mf script-pack run repo/related-files map src tests/cli/package-metadata-contracts.test.js --max-files 500 --json',
40
40
  ],
41
41
  exitCodes: [
42
42
  { label: '0', description: t(lang, 'relatedFiles.help.exit.ok') },
@@ -159,9 +159,15 @@ function addSurfaceImpacts(root, changedFile, impacts, policy, findings, issues)
159
159
  }
160
160
  function addContractImpacts(root, changedFile, impacts, policy, findings, issues) {
161
161
  const contractPaths = changedFile.surface === 'schema'
162
- ? ['schemas/README.md', 'src/core/public-json-contracts.ts', 'tests/cli/schema.test.js']
162
+ ? ['schemas/README.md', 'src/core/public-json-contracts.ts', 'tests/cli/schema-manifest-contracts.test.js']
163
163
  : changedFile.surface === 'package' || changedFile.surface === 'template'
164
- ? ['tests/cli/package.test.js', 'templates/default/manifest.toml']
164
+ ? [
165
+ 'tests/cli/package-command-contracts.test.js',
166
+ 'tests/cli/package-metadata-contracts.test.js',
167
+ 'tests/cli/package-release-workflow-contracts.test.js',
168
+ 'tests/cli/package-template-skill-contracts.test.js',
169
+ 'templates/default/manifest.toml',
170
+ ]
165
171
  : changedFile.surface === 'workflow'
166
172
  ? ['.mustflow/config/commands.toml', 'tests/cli/authoring-skill-contracts.test.js']
167
173
  : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mustflow",
3
- "version": "2.112.7",
3
+ "version": "2.112.8",
4
4
  "description": "Agent workflow documents and CLI for mustflow repository roots.",
5
5
  "type": "module",
6
6
  "license": "MIT-0",
@@ -62,7 +62,7 @@ translations = {}
62
62
  [documents."skills.index"]
63
63
  source = "locales/en/.mustflow/skills/INDEX.md"
64
64
  source_locale = "en"
65
- revision = 220
65
+ revision = 224
66
66
  translations = {}
67
67
 
68
68
  [documents."skill.adapter-boundary"]
@@ -1143,6 +1143,12 @@ source_locale = "en"
1143
1143
  revision = 2
1144
1144
  translations = {}
1145
1145
 
1146
+ [documents."skill.readme-evidence-gate"]
1147
+ source = "locales/en/.mustflow/skills/readme-evidence-gate/SKILL.md"
1148
+ source_locale = "en"
1149
+ revision = 4
1150
+ translations = {}
1151
+
1146
1152
  [documents."skill.release-notes-authoring"]
1147
1153
  source = "locales/en/.mustflow/skills/release-notes-authoring/SKILL.md"
1148
1154
  source_locale = "en"
@@ -2,7 +2,7 @@
2
2
  mustflow_doc: skills.index
3
3
  locale: en
4
4
  canonical: true
5
- revision: 220
5
+ revision: 224
6
6
  authority: router
7
7
  lifecycle: mustflow-owned
8
8
  ---
@@ -622,6 +622,7 @@ routes. Event routes stay inactive until their event occurs.
622
622
  | --- | --- | --- | --- | --- | --- | --- |
623
623
  | Claims, adoption decisions, research notes, methodology recommendations, tool comparisons, or external summaries depend on current, external, dated, versioned, or otherwise drift-prone sources | `.mustflow/skills/source-freshness-check/SKILL.md` | Stale-sensitive claim or recommendation, source text or page, date or version context, source policy, and intended adoption surface | Source wording, documentation, skill procedures, templates, tests, schemas, and freshness report | stale or unverifiable claim, copied external authority, or unsafe adoption | `changes_status`, `docs_validate_fast`, `mustflow_check` | Checked source boundary, research split, adoption decision, wording changes, skipped refreshes, and stale-source risk |
624
624
  | `README.md` is created, restructured, or substantially rewritten | `.mustflow/skills/readme-authoring/SKILL.md` | User request, existing README if any, repository evidence, nearest instructions, and command contracts | `README.md` and directly linked public docs | invented project claims, marketing drift, or loss of human-authored intent | `docs_validate_fast`, `mustflow_check` | Evidence-based README changes, preserved or deferred sections, verification notes |
625
+ | README content is generated, reviewed, or audited for unsupported AI-generated claims, fake commands, invented environment variables, README-as-investment-deck overclaim, unshipped roadmap-as-current wording, fake or internal-demo usage examples, TODO/temporary/internal-state wording, executable install/run/test/build contracts, pasteable examples, public API examples, security exposure, performance, platform support, license, trademark, copyright, credit, attribution, roadmap, architecture, or file-tree explanations | `.mustflow/skills/readme-evidence-gate/SKILL.md` | README draft or sections, evidence ledger, repository files, package manager metadata, lockfiles, `bin`, `exports`, public exports, command sources, CLI parser/help/output evidence, config/env sources, support and badge evidence, tests, license and notice files, SPDX identifiers, source headers, package metadata, contributor and trademark evidence, CI matrices, Dockerfiles, benchmarks, maintained docs, screenshots, `.env.example`, code-block execution policy, clean-environment evidence, secret-scanning policy, and external or AI source text | README wording and directly synchronized README examples, docs links, placeholder examples, code-block labels, legal/credit wording, or screenshot guidance | hallucinated README contract, fake quick-start, invented env/API, subjective maintenance-debt prose, unsupported pasteable snippet, untested executable README contract, OS-shell mismatch, missing server readiness, unsupported security/performance/platform/license/trademark claim, mixed roadmap/current support, hidden internal demo prerequisite, unsupported badge or support claim, real-looking fake key, API key in URL query, internal URL, private IP, production path, pasteable production command, unsafe screenshot, or speculative file tree | `docs_validate_fast`, `test_related`, `test_release`, `mustflow_check` | README evidence ledger, claims kept/qualified/moved/removed, subjective phrases converted, overclaim/support/badge/failure-path checks, executable-command and clean-environment checks, pasteable contract checks, legal/SPDX/NOTICE/trademark/credit checks, security exposure checks, unsupported claims found, verification notes, and remaining README evidence risk |
625
626
  | Release notes, changelog entries, public change summaries, release preparation copy, or package release wording are drafted or revised | `.mustflow/skills/release-notes-authoring/SKILL.md` | User-provided change summary, current diff summary, release audience, public surfaces, version source, and command contract entries | Release notes, changelog entries, release preparation notes, and directly synchronized docs or package metadata | invented release history, inflated public claims, internal noise, stale version or migration notes, or unverified release evidence | `changes_status`, `changes_diff_summary`, `docs_validate_fast`, `test_release`, `mustflow_check` | Release audience, categorized notes, excluded internal changes, version or migration checks, verification, skipped release-history checks, and remaining release-note risk |
626
627
  | Release publishing, package registry publication, remote release channels, Git tags, GitHub Releases, release assets, npm, PyPI, crates.io, Go modules, Docker images, Homebrew formulae or casks, app updater metadata, version bump decisions, artifact inspection, post-publish smoke tests, rollback or yanking plans, or user installation paths are created, changed, reviewed, or reported | `.mustflow/skills/release-publish-change/SKILL.md` | Release target, version, channel, package name, module path, image name, tag, artifact names, expected assets, public contract source, artifact inspection method, remote publication surface, recovery model, and command contract entries | Version metadata, release workflows, package manifests, artifact manifests, changelog or release-preparation docs, package tests, install-smoke expectations, release validation tests, and installed-template metadata | local-only release claim, wrong version bump, stale artifact, registry overwrite assumption, missing asset, bad checksum or signature, moved Go tag, unverified Docker digest, updater metadata breakage, missing user-path smoke test, or false rollback claim | `changes_status`, `changes_diff_summary`, `lint`, `build`, `test_related`, `test`, `docs_validate_fast`, `test_release`, `mustflow_check` | Release target, version and channel, public API classification, artifact inspection evidence, remote publication state, user-path smoke result, synchronized surfaces, recovery classification, verification, and remaining release-publish risk |
627
628
  | Search-friendly ad-supported articles, blog posts, guides, reviews, comparisons, FAQs, or evergreen content are planned, written, edited, reviewed, or reported | `.mustflow/skills/search-ad-content-authoring/SKILL.md` | Search intent, reader task, content type, source freshness needs, monetization constraints, article draft or outline, and command contract entries | Article outlines, headings, paragraphs, tables, lists, FAQs, images, links, disclosures, content docs, templates, tests, and reports | keyword stuffing, thin filler, misleading ad adjacency, stale policy or ranking claims, unsupported revenue claims, accessibility or layout instability, or copied competitor content | `changes_status`, `changes_diff_summary`, `docs_validate_fast`, `test_release`, `mustflow_check` | Search intent, outline shape, content structure checks, source freshness, ad layout and trust checks, omitted or verified claims, verification, and remaining content risk |
@@ -0,0 +1,183 @@
1
+ ---
2
+ mustflow_doc: skill.readme-evidence-gate
3
+ locale: en
4
+ canonical: true
5
+ revision: 4
6
+ lifecycle: mustflow-owned
7
+ authority: procedure
8
+ name: readme-evidence-gate
9
+ description: Apply this skill when README content is generated, reviewed, or audited for unsupported claims, README-as-investment-deck overclaim, unshipped roadmap-as-current wording, fake or internal-demo usage examples, subjective maintenance-debt wording such as TODO later, temporary, for now, probably, internal team reasons, ask Slack or a person, sample may differ, or see code, and drift-prone executable README contracts such as install, setup, run, dev server, test, build, Docker, environment, API, CLI output, package-manager guidance, support matrices, badges, roadmap, architecture, file-tree explanations, license, trademark, copyright, credit, attribution, or security-exposure surfaces such as real-looking fake keys, internal URLs, production paths, API keys in query strings, screenshots, and pasteable production commands.
10
+ metadata:
11
+ mustflow_schema: "1"
12
+ mustflow_kind: procedure
13
+ pack_id: mustflow.core
14
+ skill_id: mustflow.core.readme-evidence-gate
15
+ command_intents:
16
+ - docs_validate_fast
17
+ - test_related
18
+ - test_release
19
+ - mustflow_check
20
+ ---
21
+
22
+ # README Evidence Gate
23
+
24
+ <!-- mustflow-section: purpose -->
25
+ ## Purpose
26
+
27
+ Prevent README prose from becoming a contract for features, setup paths, APIs, safety claims, or future work that the repository does not actually support.
28
+
29
+ <!-- mustflow-section: use-when -->
30
+ ## Use When
31
+
32
+ - README text is generated from code, issue notes, AI output, review feedback, or a rough project summary.
33
+ - A README draft lists features, quick-start steps, install or run commands, environment variables, public APIs, supported platforms, architecture, license, roadmap, security, performance, or scalability claims.
34
+ - A README review needs to find hallucinated claims, fake commands, invented environment variables, unsupported examples, or marketing words that outrun the code.
35
+ - A README uses production-ready, enterprise-grade, one-line integration, platform, system, engine, support, badge, or roadmap language that may describe aspiration instead of shipped behavior.
36
+ - README examples may call desired APIs instead of current public APIs, hide internal demo prerequisites, or omit normal failure paths such as auth failure, timeout, empty data, permission denied, rate limit, pagination, or idempotency.
37
+ - README, `.env.example`, examples, screenshots, or contribution templates may expose real-looking fake keys, API keys in URL query strings, internal domains, private IPs, admin URLs, production paths, bucket names, customer identifiers, or pasteable production commands.
38
+ - A README contains TODO, later, temporary, for now, probably, usually, team-reason, legacy, not organized yet, ask Slack or person, production differs, sample may differ, or see code wording that describes a person's work state instead of the current user contract.
39
+ - README code blocks, command examples, CLI output snippets, import examples, environment examples, install instructions, test commands, build output paths, server startup instructions, or runtime support statements need to be checked as pasteable contracts.
40
+ - README license, trademark, copyright, attribution, credit, third-party asset, AI-generated content, or open-source status claims need to be checked against repository-owned rights and notice evidence.
41
+ - `readme-authoring` is active and the README contains more than a small link-only or typo-only change.
42
+
43
+ <!-- mustflow-section: do-not-use-when -->
44
+ ## Do Not Use When
45
+
46
+ - The task only fixes spelling, broken anchors, or formatting and does not add or preserve factual claims.
47
+ - The task edits a non-README documentation page whose owning skill has a stricter claim-evidence procedure.
48
+ - The user explicitly asks for speculative marketing copy, a pitch, or roadmap ideation outside repository truth.
49
+ - The repository evidence is unavailable and the task can be completed by reporting the missing evidence without editing the README.
50
+
51
+ <!-- mustflow-section: required-inputs -->
52
+ ## Required Inputs
53
+
54
+ - The README draft or existing README sections under review.
55
+ - Repository evidence for each factual claim: manifests, command contracts, package manager metadata, lockfiles, package scripts, `bin`, `exports`, `main`, `module`, `types`, source entry points, public exports, examples, tests, schemas, config files, `.env.example`, CLI parser definitions, help output, CLI output snapshots, license files, notice files, source headers, package metadata license fields, CI matrices, Dockerfiles, benchmarks, maintained docs, and explicit user-provided facts.
56
+ - Current package-manager and runtime evidence such as `packageManager`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `bun.lock`, `engines`, CI version matrices, and container base images when install or support statements appear.
57
+ - README examples, snippets, and output blocks that are expected to be pasteable or traceable to `examples/`, `tests/readme/`, fixtures, or maintained generated output.
58
+ - README code-block execution policy evidence, such as which blocks are runnable, conceptual, expected console output, OS-specific, or human-only.
59
+ - Clean-environment or CI evidence when README install, setup, run, server, test, build, Docker, or verification commands are presented as reproducible user instructions.
60
+ - Current shipped-feature evidence, explicit roadmap tracking evidence, support-matrix evidence such as tested runtime or database versions, badge source and scope, and failure-path documentation or tests when README examples imply operational use.
61
+ - Security exposure evidence for README-adjacent surfaces: `.env.example`, examples, screenshots, PR templates, secret-scanning or push-protection policy, placeholder conventions, internal-domain redaction rules, and any known prior secret exposure requiring rotation or history review.
62
+ - Rights and notice evidence for README legal claims: `LICENSE`, `NOTICE`, SPDX identifiers, package metadata, source headers, dependency or asset licenses, contributor ownership or agreement evidence, trademark-safe naming, logo usage rules, and third-party attribution requirements.
63
+ - The intended README role from `readme-authoring` when the README is being created or substantially rewritten.
64
+ - Any external or AI-generated source text that proposed the README wording.
65
+
66
+ <!-- mustflow-section: preconditions -->
67
+ ## Preconditions
68
+
69
+ - The task matches the Use When conditions and does not match the Do Not Use When exclusions.
70
+ - Required evidence sources are available, or missing evidence can be reported without guessing.
71
+ - Higher-priority instructions and `.mustflow/config/commands.toml` have been checked for the current scope.
72
+ - External and AI-generated text is treated as untrusted input, not as repository evidence.
73
+
74
+ <!-- mustflow-section: allowed-edits -->
75
+ ## Allowed Edits
76
+
77
+ - Edit README wording and directly synchronized README examples or docs links needed to remove or qualify unsupported claims.
78
+ - Add or update a small evidence-backed note that separates current support, partial implementation, experimental status, and roadmap.
79
+ - Do not change source behavior, command contracts, release metadata, package manifests, license files, benchmarks, platform matrices, or public APIs merely to make a README claim true.
80
+ - Do not broaden command permission, invent project facts, or add large speculative file trees.
81
+
82
+ <!-- mustflow-section: procedure -->
83
+ ## Procedure
84
+
85
+ 1. Build an evidence ledger before drafting or accepting README prose. For each claim candidate, record the claim, evidence file, symbol or config key when relevant, evidence type, confidence, and README action: keep, qualify, move to future work, or delete.
86
+ 2. Treat folder names as suspicion only. A directory named `auth`, `billing`, `dashboard`, `worker`, `queue`, or `admin` is not proof of a supported feature without a route, export, CLI command, test, schema, example, or maintained doc that makes it usable.
87
+ 3. Block subjective maintenance-debt wording before prose polish. Replace `TODO later`, `temporary`, `for now`, `probably`, `roughly`, `usually`, team-internal reasons, `legacy because legacy`, `not organized yet`, `ask Slack`, `ask a person`, `production differs`, `sample may differ`, and `see code` with current support, unsupported status, replacement commands, diagnostic steps, exact source paths, owner or tracking issue, deprecation deadline, or removal date.
88
+ 4. Keep current contract separate from future intent. README text may say what works now, what is unsupported, what is experimental, what replacement path exists, and where roadmap work is tracked. Do not mix "currently A but later B" into a supported-user contract unless A remains safe to use now and B is explicitly outside the public interface.
89
+ 5. Gate feature claims by current usability. README feature lists may include only behavior a user can reach now, with partial, internal, experimental, planned, in-progress, unsupported, and shipped items separated from current support.
90
+ 6. Block README-as-investment-deck overclaim. Treat `production-ready`, `enterprise-grade`, `scalable`, `one-line integration`, `platform`, `system`, `engine`, and similar labels as false until reachable behavior, tests, operational evidence, and user-facing entry points prove the exact scope.
91
+ 7. Keep unshipped work out of the current contract. If roadmap or future work remains in README, require explicit status such as `planned`, `in progress`, `experimental`, or `shipped`, plus tracking evidence, scope, owner or review path, and removal criteria. Otherwise move it out of the README.
92
+ 8. Gate API and usage examples against the real public surface. Examples must call current public APIs, CLI entry points, or maintained examples, not hoped-for methods or copied competitor README concepts such as plugin, adapter, middleware, or provider support that this repository does not expose.
93
+ 9. Surface hidden internal demo prerequisites. If an example depends on account rights, region, model access, proxy settings, sample databases, migrations, workers, Redis, Postgres, queues, admin tokens, or internal fixtures, state the prerequisite or remove the example from the general quick start.
94
+ 10. Define support as tested support. Replace broad support claims with tested ranges such as `tested with PostgreSQL 15 and 16` when evidence exists; do not treat "worked once locally" as supported platform, database, provider, browser, OS, or runtime coverage.
95
+ 11. Treat badges and numbers as scoped signals, not stability proof. Build badges, coverage, download counts, stars, benchmarks, and adoption numbers need a source, scope, and date when used; they cannot substitute for feature, readiness, security, or support evidence.
96
+ 12. Require failure-path evidence for operational examples. When README examples imply normal production use, point to or include behavior for auth failure, timeout, empty data, permission denied, rate limit, pagination, and idempotency when those conditions are relevant to the documented API or workflow.
97
+ 13. Keep experimental features visually and procedurally separate. Do not promote experimental features in the primary install flow, first quick start, main screenshot, or top feature list unless the README makes the experimental boundary impossible to miss.
98
+ 14. Gate package-manager and install guidance by declared sources. Match install commands to lockfiles and package metadata such as `packageManager`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, and `bun.lock`; do not default to npm, yarn, pnpm, Bun, Docker, or global CLI installation because it is common in the ecosystem.
99
+ 15. Prefer reproducible install wording when the repository evidence supports it. For example, lockfile-backed Node README instructions should favor `npm ci` over a mutating `npm install` path when npm lockfile evidence exists, and Python dependency instructions should include `python -m pip check` after requirements installation when that is part of the maintained setup contract.
100
+ 16. Gate commands by declared or maintained sources. Installation, quick-start, development, test, build, Docker, deployment, and verification commands must come from package scripts, command contracts, Makefiles, Docker or Compose files, language manifests, maintained docs, or explicit user instructions. Distinguish development server commands from production build and start commands.
101
+ 17. Statically map README commands to real entry points before prose polish. A package script reference such as `npm run dev` must exist in package metadata, a language-framework command such as `python manage.py runserver` must have the named entry file, a Compose service must exist in Compose config, and a container example must identify a real image or build path instead of nonsense placeholders such as `docker run .`.
102
+ 18. Separate install, setup, run, server-readiness, test, and build claims. Do not let one successful command imply the rest of the README workflow works. When the README presents server startup as runnable, require a readiness signal such as a health endpoint, expected port, expected page response, or documented manual boundary.
103
+ 19. Label README code blocks by execution status when the repository uses or adopts such a convention. Keep runnable shell blocks such as `bash verify` separate from expected console output, conceptual snippets, `bash no-run`, destructive or human-only commands, and OS-specific examples so automated extraction cannot run placeholder text.
104
+ 20. Check OS and shell boundaries for pasteable instructions. A README that claims Windows, macOS, Linux, Bash, cmd, or PowerShell support must not mix incompatible environment-variable syntax, path syntax, line continuations, or prompt markers without labeling the target shell.
105
+ 21. Gate CLI names and options by executable surfaces. README CLI names must match `bin` or documented entry points, and options, aliases, defaults, required flags, help text, output examples, stdout/stderr shape, and exit semantics must match CLI parser code, `--help`, fixtures, snapshots, or maintained output tests.
106
+ 22. Gate environment variables by code or config. Document only variables found in source lookups, config schemas, runtime manifests, `.env.example`, or maintained configuration docs. If README and `.env.example` disagree, fix the README only when the code evidence supports it, otherwise report the conflict.
107
+ 23. Gate API examples by public surface. Library examples must start from public exports, documented CLI entry points, generated API references, or tested examples. Match import paths against `exports`, `main`, `module`, `types`, source entry points, and declaration output. Do not document internal helpers, guessed import paths, guessed argument order, or sync/async behavior without source evidence.
108
+ 24. Treat README code blocks as pasteable contracts. Prefer examples under `examples/`, `tests/readme/`, fixtures, generated output snapshots, or CI-exercised README examples when feasible; otherwise qualify conceptual snippets so they cannot be mistaken for runnable setup, API, CLI, or deployment instructions.
109
+ 25. Gate README security exposure as if the README is public distribution, even for private repositories. README, `.env.example`, examples, screenshots, and package artifacts can leak through package publication, Docker images, wikis, customer handoffs, and LLM/code scans.
110
+ 26. Use placeholder-shaped secrets only. Do not include real credentials or real-looking fake keys such as `sk_live_...`, `AKIA...`, or `ghp_...`; use placeholders such as `replace-with-your-api-key` and avoid real domains, project IDs, regions, account names, bucket names, tenant IDs, or customer names.
111
+ 27. Keep secrets out of URLs and pasteable production commands. Ban API keys in URL query strings; prefer `Authorization` header examples. Do not include pasteable production commands such as production `kubectl`, destructive pod, real backup bucket, production migration, or production deploy commands in README.
112
+ 28. Redact internal and production topology. Replace internal URLs, private IPs, admin URLs, staging or production domains, production filesystem paths, deployment user paths, private-key paths, cluster names, database names, and bucket names with `example.com`, `example.test`, or `localhost` placeholders.
113
+ 29. Check screenshots and images as README content. Do not accept screenshots that show tokens, auth headers, account IDs, internal URLs, private IPs, dashboards, logs, incident IDs, customer names, tenant IDs, or production identifiers.
114
+ 30. Treat historical secret exposure as an incident, not a prose fix. If README, docs, examples, or screenshots ever contained a real secret, report the need for revocation, rotation, history scanning, and log review; deleting the current line is not sufficient.
115
+ 31. Gate test, build, and runtime support claims against real surfaces. Test commands must match the configured runner and script options; build output paths must match the configured build result; supported versions must match `engines`, CI matrices, runtime APIs, and Dockerfiles rather than hope or convention.
116
+ 32. Gate README legal claims as repository contracts, not slogans. Do not say `open source`, `MIT`, `Apache`, `GPL`, `commercial use allowed`, `no attribution required`, `official`, `certified`, `partner`, or similar rights/status language unless `LICENSE`, `NOTICE`, SPDX identifiers, package metadata, source headers, third-party notices, asset attributions, contributor rights, and trademark-safe wording agree.
117
+ 33. Use exact SPDX identifiers when a README names a software license. Keep `Apache-2.0`, `MIT`, `GPL-3.0-only`, `GPL-3.0-or-later`, and similar identifiers aligned across README, license files, package metadata, source headers, and notice surfaces.
118
+ 34. Preserve license conditions instead of collapsing them into permission slogans. If the README says commercial use is allowed, also preserve required notice, attribution, source-availability, copyleft, patent, NOTICE, or network-use obligations when they apply.
119
+ 35. Keep code, docs, assets, and trademarks separate. Creative Commons may fit docs, art, or media but is usually not the right software-code license; open-source code rights do not grant trademark or logo rights; and third-party asset credits should identify title, author, source, license, and modification status when the license requires it.
120
+ 36. Treat AI-generated provenance claims as weak evidence. A README cannot waive attribution, copyright, license, asset, snippet, or trademark obligations merely by saying content was AI-generated.
121
+ 37. Gate security, privacy, production-readiness, encryption, authorization, role-based access, secret handling, performance, scalability, benchmark, lightweight, platform-support, compatibility, and license claims with explicit evidence. Prefer deletion or narrow wording when evidence is missing.
122
+ 38. Gate architecture explanations by executable structure. Do not describe queues, workers, microservices, databases, caches, frontends, backends, deployment topology, or failure domains unless those surfaces exist in current code, config, infra files, tests, or maintained architecture docs.
123
+ 39. Keep file-tree explanations short and entry-point oriented. Include only paths a README reader needs to start, configure, verify, or contribute; do not describe broad folders from their names.
124
+ 40. Run a reverse audit after the draft: scan every README sentence for unsupported nouns, verbs, adjectives, numbers, commands, env vars, imports, platforms, code blocks, output snippets, screenshots, rights claims, internal-state wording, and future-tense promises. Remove or qualify anything missing ledger evidence.
125
+ 41. Treat high-risk adjectives as blocked until proven: `production-ready`, `secure`, `encrypted`, `scalable`, `enterprise-grade`, `robust`, `battle-tested`, `fully featured`, `seamless`, `10x`, `lightweight`, and similar marketing claims.
126
+ 42. Activate narrower skills before accepting claims that belong to another contract surface:
127
+ - command examples, help text, JSON output, or exit semantics: `command-intent-mapping-gate`, `cli-option-contract-review`, or `cli-output-contract-review`;
128
+ - external tool versions, provider behavior, package-manager guidance, or current compatibility: `source-freshness-check` or `version-freshness-check`;
129
+ - security, privacy, secrets, permission, retention, or disclosure claims: `security-privacy-review`;
130
+ - license, provenance, copied content, or third-party asset claims: `provenance-license-gate`;
131
+ - package contents, release readiness, install behavior, or template output: `release-publish-change` or `template-install-surface-sync`.
132
+ 43. When README changes are reviewed through pull requests or release gates, prefer reproducibility evidence over prose approval. Installation logs, server readiness logs, test logs, build logs, or packaged README example artifacts should back the claim when configured checks exist; otherwise report the missing evidence instead of treating a sentence review as proof.
133
+
134
+ <!-- mustflow-section: postconditions -->
135
+ ## Postconditions
136
+
137
+ - Each README factual claim is backed by repository evidence, explicitly qualified, or removed.
138
+ - Subjective TODO, temporary, internal-reason, ask-person, sample-may-differ, and see-code wording is removed or converted into current support, unsupported status, replacement path, diagnostic step, exact source path, owner or tracking evidence, deadline, or tracking issue.
139
+ - Current support, partial implementation, experimental work, and roadmap are not mixed.
140
+ - Unshipped roadmap items, internal demo prerequisites, fake desired APIs, overbroad support claims, unsupported badges, copied competitor concepts, and experimental promotion are separated, qualified, removed, or reported.
141
+ - Unsupported commands, environment variables, API examples, security, performance, platform, license, trademark, copyright, attribution, architecture, and file-tree claims are absent or reported.
142
+ - README security exposure is removed or reported: real-looking fake keys, URL-query secrets, internal URLs, private IPs, production paths, pasteable production commands, sensitive identifiers, unsafe screenshots, and missing secret rotation or history-scan follow-up after known exposure.
143
+ - README code blocks, command examples, CLI output snippets, import examples, environment examples, test commands, build output paths, server readiness claims, OS-specific shell examples, and runtime support statements are pasteable, tested, explicitly conceptual, or reported as unverified.
144
+ - README legal and credit claims agree with license, notice, SPDX, package metadata, source-header, dependency, asset, contributor, and trademark evidence, or are removed or reported.
145
+ - Any evidence gap, conflict, or deferred verification is named in the final report.
146
+
147
+ <!-- mustflow-section: verification -->
148
+ ## Verification
149
+
150
+ Use configured oneshot command intents when available:
151
+
152
+ - `docs_validate_fast`
153
+ - `mustflow_check`
154
+
155
+ Use `test_related` when README examples, command snippets, public API usage, or generated examples are changed and the configured related tests cover them.
156
+ Use `test_release` when package installation, package contents, release metadata, template install output, or README examples in packaged artifacts are affected.
157
+
158
+ <!-- mustflow-section: failure-handling -->
159
+ ## Failure Handling
160
+
161
+ - If a README claim lacks evidence, remove it or qualify it instead of searching for weaker hints.
162
+ - If evidence conflicts across code, tests, docs, and manifests, keep the README conservative and report the conflict.
163
+ - If the user asks to keep a claim that cannot be proven, mark it as unverified or future work only when that wording is honest.
164
+ - If verification fails, fix the first README-related broken link, stale command, unsupported example, or template drift before adding new prose.
165
+ - If this gate would require changing code to match README prose, stop and report that the README claim outruns the implementation.
166
+
167
+ <!-- mustflow-section: output-format -->
168
+ ## Output Format
169
+
170
+ - README sections gated
171
+ - Evidence ledger summary
172
+ - Claims kept, qualified, moved, or removed
173
+ - Subjective maintenance-debt phrases removed or converted
174
+ - README overclaim, roadmap, support, badge, fake-example, internal-demo, experimental, and failure-path checks performed
175
+ - Pasteable README contract checks performed
176
+ - README security exposure checks performed
177
+ - README executable-command, clean-environment, code-block-label, OS-shell, server-readiness, and env-key consistency checks performed
178
+ - README license, SPDX, NOTICE, trademark, contributor-rights, third-party credit, and AI-provenance checks performed
179
+ - Unsupported commands, environment variables, APIs, security, performance, platform, license, roadmap, architecture, or file-tree claims found
180
+ - Related skills activated or deferred
181
+ - Command intents run
182
+ - Skipped command intents and reasons
183
+ - Remaining README evidence risk
@@ -1200,6 +1200,12 @@ route_type = "primary"
1200
1200
  priority = 50
1201
1201
  applies_to_reasons = ["docs_change"]
1202
1202
 
1203
+ [routes."readme-evidence-gate"]
1204
+ category = "docs_release"
1205
+ route_type = "adjunct"
1206
+ priority = 72
1207
+ applies_to_reasons = ["docs_change", "copy_change", "public_api_change", "package_metadata_change", "security_change", "performance_change", "release_risk", "unknown_change"]
1208
+
1203
1209
  [routes."release-notes-authoring"]
1204
1210
  category = "docs_release"
1205
1211
  route_type = "primary"
@@ -1,6 +1,6 @@
1
1
  id = "default"
2
2
  name = "default"
3
- version = "2.112.7"
3
+ version = "2.112.8"
4
4
  description = "Minimal workflow for LLM agents to read, edit, and verify their work in a repository."
5
5
  common_root = "common"
6
6
  locales_root = "locales"
@@ -199,6 +199,7 @@ creates = [
199
199
  ".mustflow/skills/cross-agent-session-reference/SKILL.md",
200
200
  ".mustflow/skills/structure-discovery-gate/SKILL.md",
201
201
  ".mustflow/skills/readme-authoring/SKILL.md",
202
+ ".mustflow/skills/readme-evidence-gate/SKILL.md",
202
203
  ".mustflow/skills/requirement-regression-guard/SKILL.md",
203
204
  ".mustflow/skills/repro-first-debug/SKILL.md",
204
205
  ".mustflow/skills/source-anchor-authoring/SKILL.md",
@@ -771,6 +772,7 @@ oss = [
771
772
  "pure-core-imperative-shell",
772
773
  "proactive-risk-surfacing",
773
774
  "readme-authoring",
775
+ "readme-evidence-gate",
774
776
  "release-notes-authoring",
775
777
  "release-publish-change",
776
778
  "repo-improvement-loop",
@@ -1343,6 +1345,7 @@ library = [
1343
1345
  "pure-core-imperative-shell",
1344
1346
  "proactive-risk-surfacing",
1345
1347
  "readme-authoring",
1348
+ "readme-evidence-gate",
1346
1349
  "release-notes-authoring",
1347
1350
  "release-publish-change",
1348
1351
  "result-option",