@c4a/context-cli 0.7.0 → 0.7.4

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.
Files changed (219) hide show
  1. package/README.md +18 -39
  2. package/README.zh-CN.md +13 -27
  3. package/cli.js +59230 -80555
  4. package/indexers/bundles/context-code-indexer/SKILL.md +30 -3
  5. package/indexers/bundles/context-code-indexer/context-indexer.yaml +3 -8
  6. package/indexers/bundles/context-code-indexer/references/indexer.md +110 -7
  7. package/indexers/bundles/context-code-indexer/references/metrics.md +143 -37
  8. package/indexers/bundles/context-code-indexer/templates/adapter-integration.md +2 -2
  9. package/indexers/bundles/context-code-indexer/templates/component-library.md +8 -0
  10. package/indexers/bundles/context-code-indexer/templates/gateway-facade.md +16 -0
  11. package/indexers/bundles/context-markdown-indexer/SKILL.md +13 -3
  12. package/indexers/bundles/context-markdown-indexer/context-indexer.yaml +20 -7
  13. package/indexers/bundles/context-markdown-indexer/references/indexer.md +33 -4
  14. package/indexers/bundles/context-markdown-indexer/references/semantic-planning.md +30 -14
  15. package/indexers/bundles/context-markdown-indexer/references/structure-and-artifacts.md +6 -0
  16. package/indexers/bundles/context-markdown-indexer/tests/fixtures/anonymous.json +1 -1
  17. package/indexers/bundles/context-markdown-indexer/tests/fixtures/profiles.json +13 -13
  18. package/indexers/bundles/context-markdown-indexer/tests/fixtures/routing.json +122 -0
  19. package/indexers/contracts/operator-contract.json +2 -2
  20. package/indexers/contracts/profile-contract.json +3819 -454
  21. package/indexers/release-manifest.json +22 -22
  22. package/package.json +13 -3
  23. package/plugins/VERSION +1 -1
  24. package/plugins/claude/.claude-plugin/plugin.json +1 -1
  25. package/plugins/claude/commands/context.md +44 -85
  26. package/plugins/codex/.codex-plugin/plugin.json +2 -2
  27. package/plugins/codex/skills/context/SKILL.md +44 -85
  28. package/plugins/cursor/.cursor-plugin/plugin.json +1 -1
  29. package/plugins/cursor/commands/c4a-context.md +44 -85
  30. package/plugins/skills/context/SKILL.md +44 -85
  31. package/plugins/skills/context-code-indexer/SKILL.md +30 -3
  32. package/plugins/skills/context-code-indexer/context-indexer.yaml +3 -8
  33. package/plugins/skills/context-code-indexer/references/indexer.md +110 -7
  34. package/plugins/skills/context-code-indexer/references/metrics.md +143 -37
  35. package/plugins/skills/context-code-indexer/templates/adapter-integration.md +2 -2
  36. package/plugins/skills/context-code-indexer/templates/component-library.md +8 -0
  37. package/plugins/skills/context-code-indexer/templates/gateway-facade.md +16 -0
  38. package/plugins/skills/context-markdown-indexer/SKILL.md +13 -3
  39. package/plugins/skills/context-markdown-indexer/context-indexer.yaml +20 -7
  40. package/plugins/skills/context-markdown-indexer/references/indexer.md +33 -4
  41. package/plugins/skills/context-markdown-indexer/references/semantic-planning.md +30 -14
  42. package/plugins/skills/context-markdown-indexer/references/structure-and-artifacts.md +6 -0
  43. package/plugins/skills/context-markdown-indexer/tests/fixtures/anonymous.json +1 -1
  44. package/plugins/skills/context-markdown-indexer/tests/fixtures/profiles.json +13 -13
  45. package/plugins/skills/context-markdown-indexer/tests/fixtures/routing.json +122 -0
  46. package/providers/context/actions/advance-current-indexer-lifecycle.yaml +6 -0
  47. package/providers/context/actions/configure-indexer-providers.yaml +1 -1
  48. package/providers/context/actions/materialize-indexer-workset-view.yaml +7 -0
  49. package/providers/context/actions/run-indexer-lifecycle.yaml +7 -0
  50. package/providers/context/actions/run-indexer-post-author-composer.yaml +1 -1
  51. package/providers/context/codes.yaml +9 -49
  52. package/providers/context/graphs/indexer.yaml +75 -592
  53. package/providers/context/graphs/workspace.yaml +25 -500
  54. package/providers/context/manifest.json +110 -1199
  55. package/providers/context/provider.yaml +2 -2
  56. package/providers/context/resources/diagnostics/projection-stale.md +0 -1
  57. package/providers/context/resources/dialogue/human-gates.md +3 -3
  58. package/providers/context/resources/manuals/reference/package-templates.md +2 -3
  59. package/providers/context/resources/manuals/reference/project-api.md +52 -985
  60. package/providers/context/resources/procedures/close-and-build.md +8 -23
  61. package/providers/context/resources/procedures/knowledge-review.md +13 -4
  62. package/providers/context/resources/procedures/source-capture-detailed.md +6 -8
  63. package/providers/context/resources/views/authorized-indexer-workset-view.yaml +15 -0
  64. package/providers/context/resources/views/package-current.yaml +1 -1
  65. package/providers/context/resources/views/resolved-indexer-instructions.yaml +1 -1
  66. package/providers/context/resources/views/review-current.yaml +1 -1
  67. package/providers/context/resources/views/source-boundary.yaml +1 -1
  68. package/providers/context/resources/views/source-current.yaml +1 -1
  69. package/providers/context/resources/views/verification-current.yaml +1 -1
  70. package/providers/context/resources/views/workspace-current.yaml +1 -1
  71. package/providers/context/schemas/indexer-agent-step-input.schema.json +2 -2
  72. package/providers/context/schemas/indexer-agent-step-result.schema.json +298 -32
  73. package/providers/context/schemas/indexer-authorized-workset-view.schema.json +65 -0
  74. package/providers/context/schemas/indexer-contract-overlay-validation-input.schema.json +0 -42
  75. package/providers/context/schemas/indexer-contract-overlay-validation-result.schema.json +27 -122
  76. package/providers/context/schemas/indexer-lifecycle-continuation.schema.json +15 -0
  77. package/providers/context/schemas/indexer-main-lifecycle-input.schema.json +13 -20
  78. package/providers/context/schemas/indexer-main-lifecycle-output.schema.json +17 -2
  79. package/providers/context/schemas/indexer-materialized-resource.schema.json +8 -1
  80. package/providers/context/schemas/indexer-overlay-question-proposal-input.schema.json +55 -6
  81. package/providers/context/schemas/indexer-overlay-question-rebind-input.schema.json +4 -4
  82. package/providers/context/schemas/indexer-workset-view-materialization-request.schema.json +32 -0
  83. package/providers/context/skills/configure-indexer-providers/SKILL.md +40 -27
  84. package/providers/context/skills/run-indexer-agent-step/SKILL.md +34 -8
  85. package/providers/context/skills/run-indexer-lifecycle/SKILL.md +37 -0
  86. package/providers/context/skills/run-indexer-post-author-composer/SKILL.md +38 -9
  87. package/docs/document-optimization.md +0 -82
  88. package/docs/document-optimization.zh-CN.md +0 -70
  89. package/indexers/capability-manifest.json +0 -40
  90. package/indexers/contracts/hard-rule-conformance.json +0 -2644
  91. package/providers/context/actions/accept-main-index-run.yaml +0 -7
  92. package/providers/context/actions/accept-material-answer-run.yaml +0 -7
  93. package/providers/context/actions/accept-post-author-composer-run.yaml +0 -7
  94. package/providers/context/actions/actualize-material-answer-bindings.yaml +0 -8
  95. package/providers/context/actions/align-next.yaml +0 -6
  96. package/providers/context/actions/apply-code-index-guidance.yaml +0 -5
  97. package/providers/context/actions/apply-document-optimization-guidance.yaml +0 -5
  98. package/providers/context/actions/apply-structure-confirmation.yaml +0 -5
  99. package/providers/context/actions/audit-material-gap-state.yaml +0 -8
  100. package/providers/context/actions/audit-projected-artifact-fan-out.yaml +0 -8
  101. package/providers/context/actions/authorize-indexer-contract-overlay.yaml +0 -7
  102. package/providers/context/actions/build-main-index-author-worksets.yaml +0 -7
  103. package/providers/context/actions/build-main-index-catalog-fallback.yaml +0 -7
  104. package/providers/context/actions/build-main-index-partition-worksets.yaml +0 -7
  105. package/providers/context/actions/build-material-question-workset.yaml +0 -7
  106. package/providers/context/actions/build-post-author-composer-worksets.yaml +0 -7
  107. package/providers/context/actions/build-question-target-inventory.yaml +0 -7
  108. package/providers/context/actions/build-subject-catalog.yaml +0 -7
  109. package/providers/context/actions/build-target-resolution-views.yaml +0 -7
  110. package/providers/context/actions/checkpoint-material-answer-review.yaml +0 -8
  111. package/providers/context/actions/checkpoint-material-gaps.yaml +0 -8
  112. package/providers/context/actions/close-indexer-approved-knowledge.yaml +0 -8
  113. package/providers/context/actions/compile-next.yaml +0 -5
  114. package/providers/context/actions/compose-indexer-post-author-fragments.yaml +0 -7
  115. package/providers/context/actions/configure-code-extraction.yaml +0 -5
  116. package/providers/context/actions/configure-prose-lifecycle.yaml +0 -5
  117. package/providers/context/actions/converge-main-index-partition-run.yaml +0 -7
  118. package/providers/context/actions/evaluate-material-gaps.yaml +0 -8
  119. package/providers/context/actions/extract-next.yaml +0 -5
  120. package/providers/context/actions/fail-main-index-run.yaml +0 -7
  121. package/providers/context/actions/fail-material-answer-run.yaml +0 -7
  122. package/providers/context/actions/fail-post-author-composer-run.yaml +0 -7
  123. package/providers/context/actions/inspect-code-extraction.yaml +0 -5
  124. package/providers/context/actions/inspect-document-classification.yaml +0 -5
  125. package/providers/context/actions/inspect-index-candidate-review-readiness.yaml +0 -8
  126. package/providers/context/actions/inspect-index-profile-failure.yaml +0 -7
  127. package/providers/context/actions/inspect-material-answer-review.yaml +0 -8
  128. package/providers/context/actions/inspect-structure.yaml +0 -5
  129. package/providers/context/actions/migrate-codeindex.yaml +0 -5
  130. package/providers/context/actions/observe-main-index-run-ledger.yaml +0 -7
  131. package/providers/context/actions/observe-material-answer-runs.yaml +0 -7
  132. package/providers/context/actions/observe-post-author-composer-worksets.yaml +0 -7
  133. package/providers/context/actions/optimize-documents.yaml +0 -6
  134. package/providers/context/actions/override-index-profile-audit.yaml +0 -7
  135. package/providers/context/actions/prepare-main-index-run-ledger.yaml +0 -7
  136. package/providers/context/actions/prepare-material-answer-runs.yaml +0 -7
  137. package/providers/context/actions/preview-extraction-batch.yaml +0 -5
  138. package/providers/context/actions/reconcile-indexer-results.yaml +0 -7
  139. package/providers/context/actions/reconcile-review-identities.yaml +0 -5
  140. package/providers/context/actions/record-index-profile-revision.yaml +0 -7
  141. package/providers/context/actions/report-index-profile-failure.yaml +0 -7
  142. package/providers/context/actions/resolve-effective-composers.yaml +0 -7
  143. package/providers/context/actions/review-material-answer-candidate.yaml +0 -8
  144. package/providers/context/actions/revise-code-index-audit.yaml +0 -5
  145. package/providers/context/actions/revise-document.yaml +0 -5
  146. package/providers/context/actions/revise-index-output.yaml +0 -7
  147. package/providers/context/actions/run-material-answer-indexers.yaml +0 -7
  148. package/providers/context/actions/start-main-index-run.yaml +0 -7
  149. package/providers/context/actions/start-material-answer-run.yaml +0 -7
  150. package/providers/context/actions/start-post-author-composer-run.yaml +0 -7
  151. package/providers/context/actions/submit-code-index-audit.yaml +0 -6
  152. package/providers/context/resources/dialogue/code-extraction.md +0 -87
  153. package/providers/context/resources/dialogue/document-classification.md +0 -33
  154. package/providers/context/resources/dialogue/structure-confirmation.md +0 -44
  155. package/providers/context/resources/dialogue/workflow-mode-after-capture.md +0 -25
  156. package/providers/context/resources/manuals/reference/code-extractors.md +0 -152
  157. package/providers/context/resources/procedures/code-extraction.md +0 -188
  158. package/providers/context/resources/procedures/code-index-audit.md +0 -113
  159. package/providers/context/resources/procedures/document-classification.md +0 -22
  160. package/providers/context/resources/procedures/document-optimization.md +0 -110
  161. package/providers/context/resources/procedures/document-revision.md +0 -36
  162. package/providers/context/resources/procedures/prose-align.md +0 -68
  163. package/providers/context/resources/procedures/prose-compile.md +0 -23
  164. package/providers/context/resources/semantic/align/candidate-resolution.md +0 -106
  165. package/providers/context/resources/semantic/align/density-profile.md +0 -41
  166. package/providers/context/resources/semantic/align/gates.md +0 -276
  167. package/providers/context/resources/semantic/align/structure-planning.md +0 -337
  168. package/providers/context/resources/semantic/code-index/classification.md +0 -270
  169. package/providers/context/resources/semantic/code-index/templates/adapter.md +0 -118
  170. package/providers/context/resources/semantic/code-index/templates/api-service.md +0 -116
  171. package/providers/context/resources/semantic/code-index/templates/background-runtime.md +0 -109
  172. package/providers/context/resources/semantic/code-index/templates/cli-tool.md +0 -129
  173. package/providers/context/resources/semantic/code-index/templates/contract-source.md +0 -73
  174. package/providers/context/resources/semantic/code-index/templates/contracts-and-chains.md +0 -81
  175. package/providers/context/resources/semantic/code-index/templates/cross-module-chain.md +0 -78
  176. package/providers/context/resources/semantic/code-index/templates/derived-source.md +0 -116
  177. package/providers/context/resources/semantic/code-index/templates/domain-service.md +0 -109
  178. package/providers/context/resources/semantic/code-index/templates/event-flow.md +0 -62
  179. package/providers/context/resources/semantic/code-index/templates/monorepo-container.md +0 -124
  180. package/providers/context/resources/semantic/code-index/templates/persistence-boundary.md +0 -56
  181. package/providers/context/resources/semantic/code-index/templates/plugin-extension.md +0 -52
  182. package/providers/context/resources/semantic/code-index/templates/protocol-boundary.md +0 -88
  183. package/providers/context/resources/semantic/code-index/templates/sdk-library.md +0 -132
  184. package/providers/context/resources/semantic/code-index/templates/web-application.md +0 -145
  185. package/providers/context/resources/semantic/compile/index.md +0 -31
  186. package/providers/context/resources/views/code-index-audit.yaml +0 -6
  187. package/providers/context/resources/views/document-optimization-current.yaml +0 -6
  188. package/providers/context/resources/views/extraction-preview.yaml +0 -6
  189. package/providers/context/resources/views/structure-current.yaml +0 -6
  190. package/providers/context/schemas/code-index-audit-decision.schema.json +0 -94
  191. package/providers/context/schemas/document-optimization-decisions.schema.json +0 -57
  192. package/providers/context/schemas/indexer-candidate-review-readiness-input.schema.json +0 -46
  193. package/providers/context/schemas/indexer-candidate-review-readiness-output.schema.json +0 -104
  194. package/providers/context/schemas/indexer-contract-overlay-authorization-input.schema.json +0 -32
  195. package/providers/context/schemas/indexer-contract-overlay-authorization-result.schema.json +0 -121
  196. package/providers/context/schemas/indexer-material-answer-lifecycle-input.schema.json +0 -90
  197. package/providers/context/schemas/indexer-material-answer-lifecycle-output.schema.json +0 -80
  198. package/providers/context/schemas/indexer-material-answer-review-inspection-input.schema.json +0 -32
  199. package/providers/context/schemas/indexer-material-answer-review-inspection-output.schema.json +0 -32
  200. package/providers/context/schemas/indexer-material-answer-review-resolution-input.schema.json +0 -19
  201. package/providers/context/schemas/indexer-material-answer-review-resolution-output.schema.json +0 -87
  202. package/providers/context/schemas/indexer-material-gap-lifecycle-input.schema.json +0 -86
  203. package/providers/context/schemas/indexer-material-gap-lifecycle-output.schema.json +0 -19
  204. package/providers/context/schemas/indexer-post-author-fragment-result.schema.json +0 -18
  205. package/providers/context/schemas/indexer-post-author-lifecycle-input.schema.json +0 -94
  206. package/providers/context/schemas/indexer-post-author-lifecycle-output.schema.json +0 -72
  207. package/providers/context/schemas/indexer-profile-failure-inspection-input.schema.json +0 -13
  208. package/providers/context/schemas/indexer-profile-failure-inspection-result.schema.json +0 -19
  209. package/providers/context/schemas/indexer-profile-failure-report-input.schema.json +0 -22
  210. package/providers/context/schemas/indexer-profile-failure-report-result.schema.json +0 -49
  211. package/providers/context/schemas/indexer-profile-override-decision.schema.json +0 -20
  212. package/providers/context/schemas/indexer-profile-override-result.schema.json +0 -49
  213. package/providers/context/schemas/indexer-profile-revision-agent-input.schema.json +0 -18
  214. package/providers/context/schemas/indexer-profile-revision-record-input.schema.json +0 -31
  215. package/providers/context/schemas/indexer-profile-revision-record-result.schema.json +0 -45
  216. package/providers/context/schemas/indexer-result-reconciliation-input.schema.json +0 -59
  217. package/providers/context/schemas/indexer-result-reconciliation-output.schema.json +0 -43
  218. package/providers/context/schemas/prose-structure-batch.schema.json +0 -35
  219. package/providers/context/skills/revise-index-output/SKILL.md +0 -12
@@ -43,11 +43,8 @@ managed work, or no further review already resolves this choice.
43
43
  Use the user's explicit language choice when present; otherwise pass `zh-CN`
44
44
  for a Chinese conversation and `en` for an English conversation. Pass
45
45
  `project-dir`, `--name`, `--dev`, or `--debug` only when the user explicitly
46
- requested that initialization choice. New workspaces enable conservative
47
- document compilation optimization by default. Pass `--no-optimize-docs` only
48
- when the user explicitly asks to disable it during initialization. Pass
49
- `--managed` only after the user explicitly authorizes fully managed operation
50
- in this conversation.
46
+ requested that initialization choice. Pass `--managed` only after the user
47
+ explicitly authorizes fully managed operation in this conversation.
51
48
 
52
49
  If the `context` process itself cannot start because the command is missing
53
50
  (`ENOENT`, or shell exit 127 explicitly identifying `context` as the missing
@@ -76,23 +73,18 @@ Execute only `next_action.command` returned by `context entry`:
76
73
  init`, enter the project root, read the generated `AGENTS.md`, and run this
77
74
  entry again.
78
75
 
79
- If the user explicitly asks to correct or revise an existing approved or built
80
- knowledge page, first let `context entry` relocate into the existing workspace
81
- and evaluate its current Route once. Resolve a blocking workspace diagnostic,
82
- evidence-maintenance action, or already-pending Review batch first; these may
83
- change the approved baseline. Before continuing unrelated capture, extraction,
84
- package configuration, or build work, start the correction with:
76
+ If the user asks to correct a current Candidate before approval, first let
77
+ `context entry` relocate into the workspace and evaluate its current Route.
78
+ Start the correction with:
85
79
 
86
80
  ```bash
87
- context revise "<the user's page title, approved path, ViewRef, or wording>" --format json
81
+ context revise "<candidate title, path, or id>" --instruction "<requested correction>" --format json
88
82
  ```
89
83
 
90
- When the target is unique, run the returned status command and follow
91
- `route.document-revision.requested`. When candidates are returned, select one
92
- only if the conversation identifies it uniquely; otherwise ask which page the
93
- user means. Never edit the approved base page or `dist/` for this operation.
94
- After the Route validates the revision, continue normally: Context will offer
95
- the package build when the correction makes its output stale.
84
+ When the target is unique, Context invalidates only its derived outputs and
85
+ reopens the owning Author workset. Run the returned status command and follow
86
+ the current Route. If the target is ambiguous, ask which Candidate the user
87
+ means. Never edit `knowledge/`, `dist/`, or create a side-channel revision page.
96
88
 
97
89
  ### Conversation modes
98
90
 
@@ -104,24 +96,6 @@ before workflow evaluation. Debugging records traces below
104
96
  `.tmp/context-runtime/debug/` but does not grant workflow authority or provide
105
97
  source evidence.
106
98
 
107
- Document optimization is enabled by default for newly initialized workspaces.
108
- It performs source-constrained editorial revision: the CLI identifies
109
- readability and knowledge-value signals, and the Agent may keep, repair,
110
- reshape, or safely omit content only inside its existing source Section. It
111
- must preserve facts, link targets, images, code, numbers, identifiers, and
112
- source evidence. Approved pages remain source-faithful; only changed full-page
113
- revisions are stored beside them as `knowledge/**/*__revision.md`. Default
114
- knowledge discovery excludes those reserved sidecars, and internal editorial
115
- audit state is not included in package output.
116
-
117
- For an existing workspace, respect its current `package.json` setting. Run
118
- `context optimize-docs enable` or `context optimize-docs disable` only when the
119
- user explicitly changes that preference. If initialization is required and the
120
- user opts out, pass `--no-optimize-docs` through `context entry`; otherwise let
121
- the default initialization command enable it.
122
- Follow the resulting Route instead of editing approved knowledge or package
123
- output by hand.
124
-
125
99
  For explicitly authorized fully managed operation, use:
126
100
 
127
101
  ```bash
@@ -141,11 +115,11 @@ that returned Route; never reconstruct a command from an earlier step.
141
115
 
142
116
  Code knowledge is published under `codeindex`. Context mechanically audits each
143
117
  module's input analysis, stable boundaries, facts, explanation, evidence scope,
144
- and page shape without producing a total score. In fully managed operation,
145
- follow returned repair actions automatically; after three failed revisions of
146
- the same module problem, stop at the one aggregated human-guidance Gate. If a
147
- legacy workspace returns `route.extract.codeindex-migration-required`, execute
148
- only its migration command; do not rename `codegraph` paths manually.
118
+ and page shape without producing a total score. Blocking mechanical failures
119
+ reopen the owning Author or Composer workset; advisory metrics remain warnings
120
+ and do not create a retry ledger or override Gate. If a legacy workspace returns
121
+ `route.extract.codeindex-migration-required`, execute only its migration
122
+ command; do not rename `codegraph` paths manually.
149
123
 
150
124
  ### Discover Indexer Providers before selection
151
125
 
@@ -158,15 +132,11 @@ default, six-level customization ladder, upgrade conflict handling, debugging
158
132
  commands, and the exit condition for each level. Do not replace it with a
159
133
  remembered or host-specific workflow.
160
134
 
161
- When the current Route starts a new Code or Markdown indexing task, run this
162
- read-only command once before creating or changing any Provider registry entry:
163
-
164
- ```bash
165
- context indexer catalog --format json
166
- ```
167
-
168
- Report the returned CLI-bundled entry Skills together with every other Indexer
169
- Skill already visible through the current host. The conversational report must
135
+ When the current Route starts a new Code or Markdown indexing task, its
136
+ `configure-indexer-providers` Action input already contains the exact applied
137
+ requirements and CLI-bundled Provider catalog. Report those bundled entries
138
+ together with every other Indexer Skill already visible through the current
139
+ host. The conversational report must
170
140
  include each Skill name, readable exact version when available, and source type
171
141
  (CLI-bundled community, workspace, installed plugin, or authorized marketplace
172
142
  result). When the host already exposes an exact Skill root or `SKILL.md` path,
@@ -180,9 +150,7 @@ unavailable rather than guessing it.
180
150
  Group observations with the same Skill name and exact version into one
181
151
  conversational item and list all observed source types on that item. An
182
152
  installed projection of an identical CLI-bundled identity is not a second
183
- Provider. Keep different versions separate. The route input still preserves
184
- each distinct source observation as its own `visible_skills` entry because
185
- `source_type` is singular; never use source count or discovery order as
153
+ Provider. Keep different versions separate; never use source count or discovery order as
186
154
  selection precedence. Do not search arbitrary directories, infer host cache
187
155
  paths, install a plugin, or query a marketplace unless the user separately
188
156
  authorizes it. Keep this discovery report only in the conversation: do not
@@ -191,36 +159,23 @@ write it to `src/`, `package.json`, lifecycle state, receipts, audit output, or
191
159
  new indexing task, a changed host-visible Skill set, or an explicit diagnostic
192
160
  request.
193
161
 
194
- After the requirements are applied, author one
195
- `context.indexer.provider-route-input/v1` payload whose `registry` preserves
196
- the applied `requirements` block exactly and whose `visible_skills` contains
197
- only the just-reported path-free identities. Route it before any Host resolves
198
- or reads an external Provider:
199
-
200
- ```bash
201
- context indexer route-indexer-provider-selection --input <payload.yaml-or-json> --format json
202
- ```
203
-
204
- On `community-fallback-required`, retry with the applicable CLI-bundled profile
205
- and set `community_fallback_attempted: true`. Read-scope overlap is allowed, but
206
- an exact primary owner-cell conflict must be resolved explicitly; do not use
207
- array or discovery order as precedence. If fallback leaves a required owner
208
- cell uncovered, preserve the returned `capability_gap_proof`. Only the Route's
209
- following `propose-indexer-customization` Agent Action may turn that exact proof
210
- into a dependency-free minimal `extend` draft; do not weaken the requirement,
211
- write source, add dependencies, or claim the draft is applied.
212
-
213
- Only `selection-validation-required` returns a
214
- `selection_proposal_input`. Pass that exact object to:
215
-
216
- ```bash
217
- context indexer validate-indexer-selection-proposal --input <payload.yaml-or-json> --format json
218
- ```
219
-
220
- Use only the returned `next_provider_requests` for resolution. A successful
221
- static report does not authorize materialization, installation, execution, or
222
- writing the proposal into `src/indexers.yaml`; continue through the Route's
223
- resolver, staging, final validation, confirmation, and apply Actions.
162
+ Return only `stage: provider-selection`, the non-CLI
163
+ `host_visible_skills`, and the selected semantic `indexers` through the exact
164
+ `context action complete-current` command returned by the Route. The CLI owns
165
+ construction of the full registry payload, fallback/conflict checks, static
166
+ validation, Provider resolution and staging, final validation, and atomic
167
+ application of `src/indexers.yaml`. Do not call their low-level commands as a
168
+ second production workflow.
169
+
170
+ If a selected external Provider needs Host resolution, the next current Route
171
+ contains one `context.resolve-indexer-provider/v1` Host Action and its exact
172
+ request. Invoke that Host Action once, then submit
173
+ `stage: provider-resolution` with the returned Host result through the Route's
174
+ `complete-current` command. If the Bundle carries a non-allowlisted program,
175
+ the following current Route presents the existing program-execution Gate; wait
176
+ for its user/session-authority decision and submit that decision through
177
+ `complete-current`. A recovered `provider-finalization` Route consumes
178
+ only its fixed Action input; it must not resolve or install the Provider again.
224
179
 
225
180
  ### Follow the current Route
226
181
 
@@ -228,8 +183,12 @@ Treat `workflow.current` as the current-step authority:
228
183
 
229
184
  1. Read every `resources.required` item whose `read_state` is `read-required`.
230
185
  Read a returned `path` completely, or execute a returned resource `command`
231
- and read its complete output file. Materializing a resource is not reading
232
- it. Keep the merged receipts only in this conversation and submit them with
186
+ and read its complete output file. For a current Indexer Partition, Author,
187
+ Composer or structure-review Route, read the materialized files and then use
188
+ the Route's immediate completion command; do not create or submit a read
189
+ receipt. Other workflow resources may still require the returned receipt
190
+ command. Materializing a resource is not reading it. Keep those receipts only
191
+ in this conversation and submit them with
233
192
  the exact returned `context status --resource-receipts @<file>` command. Use
234
193
  `after_read_receipts` only after the full resource has been read. The exact
235
194
  `resources.after_read.command` already returns the re-evaluated
@@ -42,11 +42,8 @@ managed work, or no further review already resolves this choice.
42
42
  Use the user's explicit language choice when present; otherwise pass `zh-CN`
43
43
  for a Chinese conversation and `en` for an English conversation. Pass
44
44
  `project-dir`, `--name`, `--dev`, or `--debug` only when the user explicitly
45
- requested that initialization choice. New workspaces enable conservative
46
- document compilation optimization by default. Pass `--no-optimize-docs` only
47
- when the user explicitly asks to disable it during initialization. Pass
48
- `--managed` only after the user explicitly authorizes fully managed operation
49
- in this conversation.
45
+ requested that initialization choice. Pass `--managed` only after the user
46
+ explicitly authorizes fully managed operation in this conversation.
50
47
 
51
48
  If the `context` process itself cannot start because the command is missing
52
49
  (`ENOENT`, or shell exit 127 explicitly identifying `context` as the missing
@@ -75,23 +72,18 @@ Execute only `next_action.command` returned by `context entry`:
75
72
  init`, enter the project root, read the generated `AGENTS.md`, and run this
76
73
  entry again.
77
74
 
78
- If the user explicitly asks to correct or revise an existing approved or built
79
- knowledge page, first let `context entry` relocate into the existing workspace
80
- and evaluate its current Route once. Resolve a blocking workspace diagnostic,
81
- evidence-maintenance action, or already-pending Review batch first; these may
82
- change the approved baseline. Before continuing unrelated capture, extraction,
83
- package configuration, or build work, start the correction with:
75
+ If the user asks to correct a current Candidate before approval, first let
76
+ `context entry` relocate into the workspace and evaluate its current Route.
77
+ Start the correction with:
84
78
 
85
79
  ```bash
86
- context revise "<the user's page title, approved path, ViewRef, or wording>" --format json
80
+ context revise "<candidate title, path, or id>" --instruction "<requested correction>" --format json
87
81
  ```
88
82
 
89
- When the target is unique, run the returned status command and follow
90
- `route.document-revision.requested`. When candidates are returned, select one
91
- only if the conversation identifies it uniquely; otherwise ask which page the
92
- user means. Never edit the approved base page or `dist/` for this operation.
93
- After the Route validates the revision, continue normally: Context will offer
94
- the package build when the correction makes its output stale.
83
+ When the target is unique, Context invalidates only its derived outputs and
84
+ reopens the owning Author workset. Run the returned status command and follow
85
+ the current Route. If the target is ambiguous, ask which Candidate the user
86
+ means. Never edit `knowledge/`, `dist/`, or create a side-channel revision page.
95
87
 
96
88
  ### Conversation modes
97
89
 
@@ -103,24 +95,6 @@ before workflow evaluation. Debugging records traces below
103
95
  `.tmp/context-runtime/debug/` but does not grant workflow authority or provide
104
96
  source evidence.
105
97
 
106
- Document optimization is enabled by default for newly initialized workspaces.
107
- It performs source-constrained editorial revision: the CLI identifies
108
- readability and knowledge-value signals, and the Agent may keep, repair,
109
- reshape, or safely omit content only inside its existing source Section. It
110
- must preserve facts, link targets, images, code, numbers, identifiers, and
111
- source evidence. Approved pages remain source-faithful; only changed full-page
112
- revisions are stored beside them as `knowledge/**/*__revision.md`. Default
113
- knowledge discovery excludes those reserved sidecars, and internal editorial
114
- audit state is not included in package output.
115
-
116
- For an existing workspace, respect its current `package.json` setting. Run
117
- `context optimize-docs enable` or `context optimize-docs disable` only when the
118
- user explicitly changes that preference. If initialization is required and the
119
- user opts out, pass `--no-optimize-docs` through `context entry`; otherwise let
120
- the default initialization command enable it.
121
- Follow the resulting Route instead of editing approved knowledge or package
122
- output by hand.
123
-
124
98
  For explicitly authorized fully managed operation, use:
125
99
 
126
100
  ```bash
@@ -140,11 +114,11 @@ that returned Route; never reconstruct a command from an earlier step.
140
114
 
141
115
  Code knowledge is published under `codeindex`. Context mechanically audits each
142
116
  module's input analysis, stable boundaries, facts, explanation, evidence scope,
143
- and page shape without producing a total score. In fully managed operation,
144
- follow returned repair actions automatically; after three failed revisions of
145
- the same module problem, stop at the one aggregated human-guidance Gate. If a
146
- legacy workspace returns `route.extract.codeindex-migration-required`, execute
147
- only its migration command; do not rename `codegraph` paths manually.
117
+ and page shape without producing a total score. Blocking mechanical failures
118
+ reopen the owning Author or Composer workset; advisory metrics remain warnings
119
+ and do not create a retry ledger or override Gate. If a legacy workspace returns
120
+ `route.extract.codeindex-migration-required`, execute only its migration
121
+ command; do not rename `codegraph` paths manually.
148
122
 
149
123
  ### Discover Indexer Providers before selection
150
124
 
@@ -157,15 +131,11 @@ default, six-level customization ladder, upgrade conflict handling, debugging
157
131
  commands, and the exit condition for each level. Do not replace it with a
158
132
  remembered or host-specific workflow.
159
133
 
160
- When the current Route starts a new Code or Markdown indexing task, run this
161
- read-only command once before creating or changing any Provider registry entry:
162
-
163
- ```bash
164
- context indexer catalog --format json
165
- ```
166
-
167
- Report the returned CLI-bundled entry Skills together with every other Indexer
168
- Skill already visible through the current host. The conversational report must
134
+ When the current Route starts a new Code or Markdown indexing task, its
135
+ `configure-indexer-providers` Action input already contains the exact applied
136
+ requirements and CLI-bundled Provider catalog. Report those bundled entries
137
+ together with every other Indexer Skill already visible through the current
138
+ host. The conversational report must
169
139
  include each Skill name, readable exact version when available, and source type
170
140
  (CLI-bundled community, workspace, installed plugin, or authorized marketplace
171
141
  result). When the host already exposes an exact Skill root or `SKILL.md` path,
@@ -179,9 +149,7 @@ unavailable rather than guessing it.
179
149
  Group observations with the same Skill name and exact version into one
180
150
  conversational item and list all observed source types on that item. An
181
151
  installed projection of an identical CLI-bundled identity is not a second
182
- Provider. Keep different versions separate. The route input still preserves
183
- each distinct source observation as its own `visible_skills` entry because
184
- `source_type` is singular; never use source count or discovery order as
152
+ Provider. Keep different versions separate; never use source count or discovery order as
185
153
  selection precedence. Do not search arbitrary directories, infer host cache
186
154
  paths, install a plugin, or query a marketplace unless the user separately
187
155
  authorizes it. Keep this discovery report only in the conversation: do not
@@ -190,36 +158,23 @@ write it to `src/`, `package.json`, lifecycle state, receipts, audit output, or
190
158
  new indexing task, a changed host-visible Skill set, or an explicit diagnostic
191
159
  request.
192
160
 
193
- After the requirements are applied, author one
194
- `context.indexer.provider-route-input/v1` payload whose `registry` preserves
195
- the applied `requirements` block exactly and whose `visible_skills` contains
196
- only the just-reported path-free identities. Route it before any Host resolves
197
- or reads an external Provider:
198
-
199
- ```bash
200
- context indexer route-indexer-provider-selection --input <payload.yaml-or-json> --format json
201
- ```
202
-
203
- On `community-fallback-required`, retry with the applicable CLI-bundled profile
204
- and set `community_fallback_attempted: true`. Read-scope overlap is allowed, but
205
- an exact primary owner-cell conflict must be resolved explicitly; do not use
206
- array or discovery order as precedence. If fallback leaves a required owner
207
- cell uncovered, preserve the returned `capability_gap_proof`. Only the Route's
208
- following `propose-indexer-customization` Agent Action may turn that exact proof
209
- into a dependency-free minimal `extend` draft; do not weaken the requirement,
210
- write source, add dependencies, or claim the draft is applied.
211
-
212
- Only `selection-validation-required` returns a
213
- `selection_proposal_input`. Pass that exact object to:
214
-
215
- ```bash
216
- context indexer validate-indexer-selection-proposal --input <payload.yaml-or-json> --format json
217
- ```
218
-
219
- Use only the returned `next_provider_requests` for resolution. A successful
220
- static report does not authorize materialization, installation, execution, or
221
- writing the proposal into `src/indexers.yaml`; continue through the Route's
222
- resolver, staging, final validation, confirmation, and apply Actions.
161
+ Return only `stage: provider-selection`, the non-CLI
162
+ `host_visible_skills`, and the selected semantic `indexers` through the exact
163
+ `context action complete-current` command returned by the Route. The CLI owns
164
+ construction of the full registry payload, fallback/conflict checks, static
165
+ validation, Provider resolution and staging, final validation, and atomic
166
+ application of `src/indexers.yaml`. Do not call their low-level commands as a
167
+ second production workflow.
168
+
169
+ If a selected external Provider needs Host resolution, the next current Route
170
+ contains one `context.resolve-indexer-provider/v1` Host Action and its exact
171
+ request. Invoke that Host Action once, then submit
172
+ `stage: provider-resolution` with the returned Host result through the Route's
173
+ `complete-current` command. If the Bundle carries a non-allowlisted program,
174
+ the following current Route presents the existing program-execution Gate; wait
175
+ for its user/session-authority decision and submit that decision through
176
+ `complete-current`. A recovered `provider-finalization` Route consumes
177
+ only its fixed Action input; it must not resolve or install the Provider again.
223
178
 
224
179
  ### Follow the current Route
225
180
 
@@ -227,8 +182,12 @@ Treat `workflow.current` as the current-step authority:
227
182
 
228
183
  1. Read every `resources.required` item whose `read_state` is `read-required`.
229
184
  Read a returned `path` completely, or execute a returned resource `command`
230
- and read its complete output file. Materializing a resource is not reading
231
- it. Keep the merged receipts only in this conversation and submit them with
185
+ and read its complete output file. For a current Indexer Partition, Author,
186
+ Composer or structure-review Route, read the materialized files and then use
187
+ the Route's immediate completion command; do not create or submit a read
188
+ receipt. Other workflow resources may still require the returned receipt
189
+ command. Materializing a resource is not reading it. Keep those receipts only
190
+ in this conversation and submit them with
232
191
  the exact returned `context status --resource-receipts @<file>` command. Use
233
192
  `after_read_receipts` only after the full resource has been read. The exact
234
193
  `resources.after_read.command` already returns the re-evaluated
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: context-code-indexer
3
- description: Context-managed Provider for evidence-bound code knowledge. Use only when the Context Indexer lifecycle selects this Provider, not as a standalone workflow.
3
+ description: Context-managed Provider for source-grounded code knowledge. Use only when the Context Indexer lifecycle selects this Provider, not as a standalone workflow.
4
4
  metadata:
5
5
  context-role: "indexer-provider"
6
6
  context-public-entry: "false"
7
- context-provider-version: "1.0.0"
7
+ context-provider-version: "1.1.1"
8
8
  ---
9
9
 
10
10
  # Context Code Indexer
@@ -15,6 +15,33 @@ shared Provider/customization guide before publishing or extending this Skill.
15
15
  Those documents are authoring contracts; the current workset and Route remain
16
16
  execution authority.
17
17
 
18
- Use this Provider only through the Context Indexer lifecycle. The workspace registry selects an exact profile, version, integrity, scope, and operation. Do not scan outside the supplied workset or write project files directly.
18
+ Use this Provider only through the Context Indexer lifecycle. The workspace registry selects an exact profile, version, integrity, scope, and operation. Consume evidence only from the single Context-supplied Authorized Workset View; do not scan outside the supplied workset, construct pagination/receipt requests, or write project files directly.
19
+
20
+ Keep machine identity and reader content deliberately small. A durable Fact
21
+ locator may identify a relation or declaration, but must never embed a source
22
+ expression, implementation body, complete tool response, credential-like value,
23
+ or other source text; keep such material in the process-local protected payload.
24
+ Write for a consumer outside the indexed module: show what the module is
25
+ responsible for, when and how to enter it through stable interfaces, where it
26
+ hands off, and which core state, failure, operation, or source-of-truth facts are
27
+ needed for correct use and attribution. Effective coverage means answering these
28
+ supported reader questions across stable capabilities, not maximizing the number
29
+ of symbols or paths mentioned.
30
+ Every reader Artifact must answer the selected profile's concrete questions from
31
+ current facts. A symbol/path list, generic module summary, workflow explanation,
32
+ or internal Fact/View/digest count is not useful knowledge and must not be emitted.
33
+ Before emitting an Artifact, identify the concrete selected-profile question
34
+ that its logical unit answers. Formal question refs may close required coverage,
35
+ but a group label, Partition Subject, or large Fact volume alone is not a reader
36
+ purpose; a unit with no applicable profile question is catalog-only.
37
+ Bind each reader claim only to the smallest relevant evidence set; never attach
38
+ an entire workset inventory to a generic summary.
39
+ Close inventory members with their actual boundary evidence or a legal
40
+ catalog/exclusion disposition. Never reuse one unrelated fallback evidence
41
+ binding merely to make the disposition denominator appear complete.
42
+ When a large module exposes stable route, capability, protocol, runtime, or
43
+ storage boundaries, partition on those boundaries before authoring. Do not put
44
+ the whole module in one catch-all logical unit, and do not replace semantic
45
+ partitioning with numbered batches.
19
46
 
20
47
  The machine-readable authority is `context-indexer.yaml`. Detailed authoring guidance is materialized by Context from the registered Bundle after its file ledger and integrity have been verified.
@@ -1,6 +1,6 @@
1
1
  protocol: context.indexer.provider/v1
2
2
  id: context-code-indexer
3
- version: 1.0.0
3
+ version: 1.1.1
4
4
  domains: [code]
5
5
 
6
6
  activation:
@@ -62,14 +62,9 @@ provides:
62
62
  priority: 200
63
63
  operations:
64
64
  - id: main-index
65
- consumes: context.indexer.main-workset/v1
65
+ consumes: context.indexer.main-workset/v2
66
66
  produces: context.indexer.main-result/v1
67
67
  accepts_layer_fragments: [fact-enrichment, template-variables]
68
- - id: material-answer
69
- consumes: context.indexer.material-question-workset/v1
70
- produces: context.indexer.material-answer-result/v1
71
- supported_evidence_kinds: [code, contract, configuration, documentation, runbook, test-result, runtime-observation]
72
- accepts_layer_fragments: [fact-enrichment]
73
68
  layer_fragments:
74
69
  - kind: derived-artifact-proposal
75
70
  phase: post-author
@@ -209,7 +204,7 @@ provider:
209
204
  - { id: contract-source, profile: contract-source, path: templates/contract-source.md }
210
205
  - { id: derived-generated-source, profile: derived-generated-source, path: templates/derived-generated-source.md }
211
206
  forbidden_fallbacks: [one-page-per-symbol, ordinal-batch-pages, inferred-runtime-chain]
212
- completion_checks: [inventory-disposition-closure, subject-owner-closure, evidence-binding]
207
+ completion_checks: [inventory-disposition-closure, subject-owner-closure, source-coverage]
213
208
 
214
209
  customization:
215
210
  supports: [config, instructions-append, template-override, program-extend]
@@ -1,6 +1,13 @@
1
1
  # Code Indexer authoring contract
2
2
 
3
- Consume only the current workset, normalized parser facts, verified layer input, and scoped evidence views supplied by Context.
3
+ Consume only the current workset authority and the single Authorized Workset View supplied by Context. Normalized parser facts, verified layer fragments, document evidence, and tool observations all arrive through that View; do not open source-specific evidence channels or manage their pagination and receipts.
4
+
5
+ The reader is outside the indexed module. Give that reader a reliable route to
6
+ the module's responsibility, supported entrypoints and interfaces, downstream
7
+ handoffs, and the core state, failure, operation, ownership, and source-of-truth
8
+ facts needed to use or attribute the capability correctly. Judge coverage by
9
+ whether supported profile questions and stable capability boundaries are
10
+ actually explained, never by symbol, file, relation, or evidence counts.
4
11
 
5
12
  ## Classify before selecting templates
6
13
 
@@ -16,14 +23,77 @@ Use only the ordered partition strategy materialized by Context for the current
16
23
 
17
24
  Group related identities by a capability, entrypoint, protocol boundary, lifecycle stage, state owner, or handoff. A granular catalog is appropriate only when the selected profile and reader goal require a public API, protocol, command, or registry reference. A cross-module chain requires an explicit trigger, source-backed joins on both sides of every boundary, transformations or state handoffs, and a terminal outcome; imports or similar names do not prove execution order.
18
25
 
26
+ A module-level overview may be one logical unit, but it must not own every
27
+ member of a large application or service when current facts expose stable route
28
+ families, public capability families, protocol surfaces, runtime workers, or
29
+ storage boundaries. Give those boundaries separate semantic groups and keep the
30
+ overview limited to navigation and shared lifecycle. This keeps each Author View
31
+ bounded enough to inspect and prevents a catch-all page from replacing useful
32
+ knowledge. Never split by traversal order, member count, or numbered batches.
33
+ Renaming a fact-kind bucket such as all relations or all symbols is not semantic
34
+ partitioning; assign cross-boundary facts to the smallest capability, protocol,
35
+ runtime, or state boundary that they actually explain.
36
+
19
37
  Create a reader target only from a CLI-supplied declaration, public export, contract declaration, runtime registration, approved Subject, or Partition Subject identity. Import/re-export aliases, ordinary references, internal helpers, and lightweight evidence may enrich their canonical owner but cannot independently authorize a target. Normalize aliases into the supplied canonical identity. Never promote a name merely because it appears in prose or has many inbound references.
20
38
 
39
+ ## Durable identity and reader-output boundary
40
+
41
+ Keep durable locator identities compact and semantic. A locator may contain a
42
+ normalized file coordinate, declaration identity, relation kind, line and a
43
+ content digest, but never a raw call expression, implementation body, complete
44
+ configuration value, remote response, secret, token, or credential-like source
45
+ text. Full source material belongs only in the bounded process-local Fact payload;
46
+ reader prose consumes its verified meaning, not the internal carrier.
47
+
48
+ The selected profile templates are mandatory authoring guidance. Use current
49
+ facts to answer their reader questions about responsibility, entrypoints,
50
+ contracts, state, handoffs, failure behavior, configuration and operation. Omit
51
+ unsupported sections. Do not replace those answers with a generic introduction,
52
+ an exhaustive or representative symbol/path list, Parser/Indexer ownership text,
53
+ selected-Fact counts, View/receipt/digest metadata, or claims about what the
54
+ pipeline did. Those details neither help a reader nor recover production state.
55
+
56
+ State caller-visible contracts directly when current facts support them:
57
+ required inputs, defaults, quantity or size limits, and asymmetric rules between
58
+ operations or variants. Naming an internal validator, mapper, hook, or generic
59
+ "validation" step does not explain the contract. Omit details that current facts
60
+ cannot prove rather than inferring them from an implementation name.
61
+
21
62
  ## Author Result and evidence
22
63
 
23
64
  For author work, produce exactly one Result for the supplied logical unit. Keep deterministic catalogs separate from explanatory prose, bind every declaration and Section to current evidence, and select only an Artifact policy variant listed in the workset. Missing material must become a canonical question disposition; never invent an answer or emit placeholder knowledge.
24
65
 
66
+ Before authoring, identify the concrete selected-profile question that the
67
+ logical unit answers. Formal question refs are used only when the workset
68
+ authorizes them, but their absence does not permit generic prose: do not turn the
69
+ Partition Subject, group label, or available Fact volume into an implied reader
70
+ purpose. Close the group as catalog-only when no profile question applies, or
71
+ return to requirement/registry planning when required coverage lacks authority.
72
+
73
+ An inventory group with no reader-authorizing public export, contract, runtime registration, approved Subject, or Partition Subject is catalog-only. Close its inventory dispositions and return no reader Artifact; do not publish a page that merely says the unit exists. Conversely, when the workset supplies current contract facts such as public signatures, properties, events, defaults, variants, examples, or source roles, consume each applicable fact in the matching template question or give it an explicit legal disposition. A generic directory summary is not a substitute for supplied contract facts.
74
+
75
+ For every Section, select the exact `document_kind`, `reader_goal`, and `artifact_kind` tuple declared by the current profile's unique layout mapping. Do not invent a tuple or return a collection name; Context resolves the collection mechanically from that mapping.
76
+
77
+ When the same Authorized Workset View contains CLI-authorized captured documents or tool snapshots, treat them as ordinary input evidence for the current logical unit. Use that material to answer a supplied question only when its evidence contract permits; otherwise keep the canonical material-gap disposition. Do not create a second answer flow or inspect registered sources outside the View.
78
+
25
79
  Treat the CLI inventory as the complete denominator, not a sample. Parser facts may prove files, declarations, entries, contracts, and relationships; they do not by themselves prove business meaning, runtime defaults, failure behavior, or ownership. Every relationship must cite the concrete evidence for its own handoff. Do not repeat one whole-page evidence set across unrelated facts, and do not reduce a multi-source fact to one arbitrary primary file.
26
80
 
81
+ Inventory closure is not a license to attach a convenient fallback binding to
82
+ unrelated members. A `boundary-only` member still needs evidence that places
83
+ that member in the current semantic boundary; otherwise use the legal catalog,
84
+ exclusion, unsupported, or material-gap disposition that describes its actual
85
+ state. Denominator completeness with false attribution is invalid.
86
+
87
+ Before declaring a dependency or handoff unverified, inspect the complete authorized
88
+ source identity inventory for `code-relation` members and join their caller/callee
89
+ identity to the supplied source spans. Relationship members can enrich a logical
90
+ unit even when they are not primary partition members and do not need to be copied
91
+ into the Result fact inventory. A large relation inventory is not evidence absence:
92
+ select the few relations that cross a stable module, protocol, runtime, store, or
93
+ generated-client boundary, then explain that boundary from the corresponding code
94
+ span. Request material only when those authorized relations and spans still cannot
95
+ establish the handoff.
96
+
27
97
  Close every CLI-supplied example candidate with exactly one decision: link it to its public target, merge it into a canonical example for the same target and scenario, retain it as a documentation example, exclude it with a reason, or request missing material. A retained representative must decide setup, key calls, parameters, and expected behavior as either extracted facts or evidence-backed not-applicable facets. Merge only by the full example identity supplied by Context; filenames and basenames are not identities. Do not omit an unresolved candidate from the decision set, and do not treat a material request as completed linkage.
28
98
 
29
99
  Explain stable responsibility, inputs, outputs, state and failure boundaries, the next handoff, and the evidence that supports each claim. Keep implementation bodies, generated payloads, exhaustive internal helper lists, and normalized template repetition out of reader prose. Empty Results are valid only when every target receives a legal disposition.
@@ -36,14 +106,47 @@ If a declared primary fact or Artifact requirement is absent, or the view does n
36
106
 
37
107
  ## Mechanical audit and revision
38
108
 
39
- Context independently validates inventory closure, owner closure, parser coverage, Artifact completeness, evidence scope, relationship candidates, semantic density, template repetition, enumeration, and implementation-body limits. These dimensions are independent; one strong dimension cannot offset a hard failure in another. Do not alter wording, Markdown syntax, sentence counts, or partitions solely to influence a counter.
109
+ Context independently validates production invariants it can derive from current
110
+ inputs, including inventory and owner closure, parser coverage, Artifact
111
+ completeness, source scope, identity, layout, and currentness. These failures
112
+ block the current Result and must be fixed at their source.
113
+
114
+ Profile metrics are authoring guidance, not a second readiness protocol. Use
115
+ `references/metrics.md` when the Result exhibits a real reader problem, but do
116
+ not alter wording, Markdown syntax, sentence counts, or partitions merely to
117
+ influence a counter. Context does not accept an Agent-supplied score as proof
118
+ that a Result is ready.
119
+
120
+ ## Two classes of evidence in a template Evidence pass
121
+
122
+ A template Evidence pass lists what to locate. Those entries do not all resolve the same way, and the difference decides whether an assertion can be written at all.
123
+
124
+ The parsers name structural identity and declarative contracts: files and symbols, imports and call relations, configuration values, source spans, page and redirect routes, workspace and release units, protocol services, methods and types, contract endpoints and operations, maintained examples and public target links, stylesheet modifiers, tables, views and indexes, and generated-source boundaries. When an Evidence pass entry falls in this set, a fact carries it and the assertion binds to that fact.
125
+
126
+ Nothing in the parser layer is named for operational behavior. There is no fact for a retry, a timeout, a lifecycle transition, a permission, a schedule, a topic or queue identity, idempotency, concurrency, ordering, a cache, a transaction, observability, a CLI command or flag, an exit code, or a component prop, slot, or variant. Templates still ask you to locate these, because they are what the reader needs — but they resolve only through a configuration value, a source span, or a relation that literally states them.
40
127
 
41
- For a failed metric, follow the matching entry in `references/metrics.md`. Each entry explains the denominator-preserving repair, a positive example, and an anti-example. It deliberately contains no numeric threshold: use the current CLI audit for actual, recommended, and hard values.
128
+ So for this second class: base the assertion on the configuration value or
129
+ source span that states the behavior, and name the identity it uses. If nothing
130
+ in the authorized view states it, the behavior is a material gap. Write the
131
+ gap. Do not convert a library dependency, a symbol name, or a familiar
132
+ framework convention into a behavioral claim. Context validates structured
133
+ references, but final Review remains responsible for rejecting unsupported
134
+ prose.
42
135
 
43
- The reference-only reader-target metric is a zero-count hard gate. Context joins the proposed reader-target projection to its own current identity observations and separately rejects targets with no identity observation at all. Provider prose, display titles, filenames, inbound-reference counts, and self-reported target authority cannot satisfy this gate.
136
+ Every profile template ends with a `Revise or stop when` condition. Stopping means recording the material gap that blocks the question the evidence that is missing and what would resolve it and never silently dropping the question from the Result. A template that tells you to stop when discovery is inferred is telling you not to guess, not to omit. Dropping the question satisfies no entry and fails question closure.
44
137
 
45
- Context recomputes example candidate decision coverage over the complete example inventory. Representative coverage and public-target linkage keep undecided and material-request candidates in their denominator, while only a confirmed exclusion removes a candidate. A scenario variant inherits coverage only when its canonical decision chain terminates at a retained representative; it inherits public-target linkage only when that terminal decision links the exact public target.
138
+ The complete reader-question set and canonical inventory are production
139
+ obligations rather than quality scores. A PartitionPlan must cover the current
140
+ question set, dispositions must cover the inventory, and an answered question
141
+ must satisfy its evidence contract. Natural-language sentences are not checked
142
+ one by one by a metric engine; keep them grounded in the supplied material and
143
+ use final Review to remove unsupported interpretation. Excluding inventory may
144
+ close a disposition, but it does not manufacture an answer to a reader
145
+ question.
46
146
 
47
- When the current audit reports a repairable profile failure, revise the complete affected logical-unit set and return a new Result under the same stable problem lineage. Use the reported uncovered identities, failed metric ids, evidence locators, and legal actions. Request material only when reliable correction requires a source, contract, protocol, or access boundary absent from the registered scope. Three failed revisions produce one complete human report; only the explicit non-delegable profile-risk Gate may accept that runtime profile risk, and no baseline integrity failure is bypassable.
147
+ A required question with no authorized supporting material remains a material request and cannot be published. Repairable content feedback reopens the owning Author or Composer through the same `context revise` lifecycle. Context does not keep a profile retry ledger and does not provide a profile-risk override Gate.
48
148
 
49
- Do not return output paths, collection names, quality thresholds, pass/fail decisions, extra owners, ad hoc question contracts, or facts outside the supplied authority. Context validates structure, evidence, layout, metrics, freshness, reconciliation, and final Review independently.
149
+ Do not return output paths, collection names, quality thresholds, pass/fail
150
+ decisions, extra owners, ad hoc question contracts, or facts outside the
151
+ supplied authority. Context validates deterministic structure, references,
152
+ layout, freshness, reconciliation, and final Review independently.