@c4a/context-cli 0.6.19 → 0.7.0

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 (273) hide show
  1. package/README.md +67 -6
  2. package/README.zh-CN.md +42 -5
  3. package/cli.js +75051 -42154
  4. package/indexers/bundles/context-code-indexer/SKILL.md +20 -0
  5. package/indexers/bundles/context-code-indexer/context-indexer.yaml +230 -0
  6. package/indexers/bundles/context-code-indexer/references/composers/contracts-and-chains.md +23 -0
  7. package/indexers/bundles/context-code-indexer/references/composers/cross-module-chain.md +22 -0
  8. package/indexers/bundles/context-code-indexer/references/composers/development-and-delivery.md +22 -0
  9. package/indexers/bundles/context-code-indexer/references/composers/event-flow.md +21 -0
  10. package/indexers/bundles/context-code-indexer/references/composers/examples-and-documentation.md +22 -0
  11. package/indexers/bundles/context-code-indexer/references/composers/persistence-boundary.md +21 -0
  12. package/indexers/bundles/context-code-indexer/references/composers/protocol-boundary.md +22 -0
  13. package/indexers/bundles/context-code-indexer/references/composers/public-contract.md +23 -0
  14. package/indexers/bundles/context-code-indexer/references/indexer.md +49 -0
  15. package/indexers/bundles/context-code-indexer/references/metrics.md +201 -0
  16. package/indexers/bundles/context-code-indexer/templates/adapter-integration.md +119 -0
  17. package/indexers/bundles/context-code-indexer/templates/api-service.md +118 -0
  18. package/indexers/bundles/context-code-indexer/templates/background-runtime.md +109 -0
  19. package/indexers/bundles/context-code-indexer/templates/cli-tool.md +129 -0
  20. package/indexers/bundles/context-code-indexer/templates/component-library.md +99 -0
  21. package/indexers/bundles/context-code-indexer/templates/contract-source.md +73 -0
  22. package/indexers/bundles/context-code-indexer/templates/data-sync-reconciliation.md +77 -0
  23. package/indexers/bundles/context-code-indexer/templates/derived-generated-source.md +117 -0
  24. package/indexers/bundles/context-code-indexer/templates/domain-service.md +109 -0
  25. package/indexers/bundles/context-code-indexer/templates/event-consumer.md +62 -0
  26. package/indexers/bundles/context-code-indexer/templates/gateway-facade.md +89 -0
  27. package/indexers/bundles/context-code-indexer/templates/monorepo-container.md +124 -0
  28. package/indexers/bundles/context-code-indexer/templates/plugin-extension.md +52 -0
  29. package/indexers/bundles/context-code-indexer/templates/sdk-library.md +132 -0
  30. package/indexers/bundles/context-code-indexer/templates/storage-repository.md +56 -0
  31. package/indexers/bundles/context-code-indexer/templates/web-application.md +146 -0
  32. package/indexers/bundles/context-code-indexer/tests/fixtures/chapters.json +226 -0
  33. package/indexers/bundles/context-code-indexer/tests/fixtures/composers.json +82 -0
  34. package/indexers/bundles/context-code-indexer/tests/fixtures/profiles.json +210 -0
  35. package/indexers/bundles/context-code-indexer/tests/fixtures/scenarios.json +122 -0
  36. package/indexers/bundles/context-markdown-indexer/SKILL.md +20 -0
  37. package/indexers/bundles/context-markdown-indexer/context-indexer.yaml +147 -0
  38. package/indexers/bundles/context-markdown-indexer/references/classification.md +63 -0
  39. package/indexers/bundles/context-markdown-indexer/references/editorial-policy.md +106 -0
  40. package/indexers/bundles/context-markdown-indexer/references/indexer.md +23 -0
  41. package/indexers/bundles/context-markdown-indexer/references/semantic-planning.md +146 -0
  42. package/indexers/bundles/context-markdown-indexer/references/structure-and-artifacts.md +109 -0
  43. package/indexers/bundles/context-markdown-indexer/tests/fixtures/anonymous.json +31 -0
  44. package/indexers/bundles/context-markdown-indexer/tests/fixtures/editorial.json +309 -0
  45. package/indexers/bundles/context-markdown-indexer/tests/fixtures/migration-equivalence.json +186 -0
  46. package/indexers/bundles/context-markdown-indexer/tests/fixtures/profiles.json +171 -0
  47. package/indexers/bundles/context-markdown-indexer/tests/fixtures/routing.json +151 -0
  48. package/indexers/capability-manifest.json +40 -0
  49. package/indexers/contracts/hard-rule-conformance.json +2644 -0
  50. package/indexers/contracts/operator-contract.json +35 -0
  51. package/indexers/contracts/profile-contract.json +10162 -0
  52. package/indexers/release-manifest.json +208 -0
  53. package/package.json +5 -4
  54. package/plugins/README.md +17 -109
  55. package/plugins/README_CN.md +11 -89
  56. package/plugins/VERSION +1 -1
  57. package/plugins/claude/.claude-plugin/plugin.json +3 -11
  58. package/plugins/claude/CLAUDE.md +1 -1
  59. package/plugins/claude/README.md +1 -1
  60. package/plugins/claude/commands/context.md +76 -1
  61. package/plugins/codex/.codex-plugin/plugin.json +6 -17
  62. package/plugins/codex/AGENTS.md +1 -1
  63. package/plugins/codex/README.md +1 -1
  64. package/plugins/codex/skills/context/SKILL.md +77 -13
  65. package/plugins/cursor/.cursor-plugin/plugin.json +4 -17
  66. package/plugins/cursor/AGENTS.md +1 -1
  67. package/plugins/cursor/README.md +3 -2
  68. package/plugins/cursor/commands/c4a-context.md +76 -3
  69. package/plugins/skills/{c4a-context → context}/SKILL.md +78 -14
  70. package/plugins/skills/context-code-indexer/SKILL.md +20 -0
  71. package/plugins/skills/context-code-indexer/context-indexer.yaml +230 -0
  72. package/plugins/skills/context-code-indexer/references/composers/contracts-and-chains.md +23 -0
  73. package/plugins/skills/context-code-indexer/references/composers/cross-module-chain.md +22 -0
  74. package/plugins/skills/context-code-indexer/references/composers/development-and-delivery.md +22 -0
  75. package/plugins/skills/context-code-indexer/references/composers/event-flow.md +21 -0
  76. package/plugins/skills/context-code-indexer/references/composers/examples-and-documentation.md +22 -0
  77. package/plugins/skills/context-code-indexer/references/composers/persistence-boundary.md +21 -0
  78. package/plugins/skills/context-code-indexer/references/composers/protocol-boundary.md +22 -0
  79. package/plugins/skills/context-code-indexer/references/composers/public-contract.md +23 -0
  80. package/plugins/skills/context-code-indexer/references/indexer.md +49 -0
  81. package/plugins/skills/context-code-indexer/references/metrics.md +201 -0
  82. package/plugins/skills/context-code-indexer/templates/adapter-integration.md +119 -0
  83. package/plugins/skills/context-code-indexer/templates/api-service.md +118 -0
  84. package/plugins/skills/context-code-indexer/templates/background-runtime.md +109 -0
  85. package/plugins/skills/context-code-indexer/templates/cli-tool.md +129 -0
  86. package/plugins/skills/context-code-indexer/templates/component-library.md +99 -0
  87. package/plugins/skills/context-code-indexer/templates/contract-source.md +73 -0
  88. package/plugins/skills/context-code-indexer/templates/data-sync-reconciliation.md +77 -0
  89. package/plugins/skills/context-code-indexer/templates/derived-generated-source.md +117 -0
  90. package/plugins/skills/context-code-indexer/templates/domain-service.md +109 -0
  91. package/plugins/skills/context-code-indexer/templates/event-consumer.md +62 -0
  92. package/plugins/skills/context-code-indexer/templates/gateway-facade.md +89 -0
  93. package/plugins/skills/context-code-indexer/templates/monorepo-container.md +124 -0
  94. package/plugins/skills/context-code-indexer/templates/plugin-extension.md +52 -0
  95. package/plugins/skills/context-code-indexer/templates/sdk-library.md +132 -0
  96. package/plugins/skills/context-code-indexer/templates/storage-repository.md +56 -0
  97. package/plugins/skills/context-code-indexer/templates/web-application.md +146 -0
  98. package/plugins/skills/context-code-indexer/tests/fixtures/chapters.json +226 -0
  99. package/plugins/skills/context-code-indexer/tests/fixtures/composers.json +82 -0
  100. package/plugins/skills/context-code-indexer/tests/fixtures/profiles.json +210 -0
  101. package/plugins/skills/context-code-indexer/tests/fixtures/scenarios.json +122 -0
  102. package/plugins/skills/context-markdown-indexer/SKILL.md +20 -0
  103. package/plugins/skills/context-markdown-indexer/context-indexer.yaml +147 -0
  104. package/plugins/skills/context-markdown-indexer/references/classification.md +63 -0
  105. package/plugins/skills/context-markdown-indexer/references/editorial-policy.md +106 -0
  106. package/plugins/skills/context-markdown-indexer/references/indexer.md +23 -0
  107. package/plugins/skills/context-markdown-indexer/references/semantic-planning.md +146 -0
  108. package/plugins/skills/context-markdown-indexer/references/structure-and-artifacts.md +109 -0
  109. package/plugins/skills/context-markdown-indexer/tests/fixtures/anonymous.json +31 -0
  110. package/plugins/skills/context-markdown-indexer/tests/fixtures/editorial.json +309 -0
  111. package/plugins/skills/context-markdown-indexer/tests/fixtures/migration-equivalence.json +186 -0
  112. package/plugins/skills/context-markdown-indexer/tests/fixtures/profiles.json +171 -0
  113. package/plugins/skills/context-markdown-indexer/tests/fixtures/routing.json +151 -0
  114. package/providers/context/actions/accept-main-index-run.yaml +7 -0
  115. package/providers/context/actions/accept-material-answer-run.yaml +7 -0
  116. package/providers/context/actions/accept-post-author-composer-run.yaml +7 -0
  117. package/providers/context/actions/actualize-material-answer-bindings.yaml +8 -0
  118. package/providers/context/actions/apply-document-optimization-guidance.yaml +5 -0
  119. package/providers/context/actions/apply-indexer-project.yaml +7 -0
  120. package/providers/context/actions/audit-material-gap-state.yaml +8 -0
  121. package/providers/context/actions/audit-projected-artifact-fan-out.yaml +8 -0
  122. package/providers/context/actions/authorize-indexer-contract-overlay.yaml +7 -0
  123. package/providers/context/actions/authorize-indexer-dependencies.yaml +7 -0
  124. package/providers/context/actions/authorize-indexer-program-execution.yaml +7 -0
  125. package/providers/context/actions/build-main-index-author-worksets.yaml +7 -0
  126. package/providers/context/actions/build-main-index-catalog-fallback.yaml +7 -0
  127. package/providers/context/actions/build-main-index-partition-worksets.yaml +7 -0
  128. package/providers/context/actions/build-material-question-workset.yaml +7 -0
  129. package/providers/context/actions/build-post-author-composer-worksets.yaml +7 -0
  130. package/providers/context/actions/build-question-target-inventory.yaml +7 -0
  131. package/providers/context/actions/build-subject-catalog.yaml +7 -0
  132. package/providers/context/actions/build-target-resolution-views.yaml +7 -0
  133. package/providers/context/actions/checkpoint-material-answer-review.yaml +8 -0
  134. package/providers/context/actions/checkpoint-material-gaps.yaml +8 -0
  135. package/providers/context/actions/close-indexer-approved-knowledge.yaml +8 -0
  136. package/providers/context/actions/compile-indexer-candidates.yaml +8 -0
  137. package/providers/context/actions/compose-indexer-post-author-fragments.yaml +7 -0
  138. package/providers/context/actions/configure-community-indexer-fallback.yaml +6 -0
  139. package/providers/context/actions/configure-indexer-providers.yaml +6 -0
  140. package/providers/context/actions/confirm-index-requirement-workset.yaml +8 -0
  141. package/providers/context/actions/confirm-subject-reidentification.yaml +8 -0
  142. package/providers/context/actions/converge-main-index-partition-run.yaml +7 -0
  143. package/providers/context/actions/discover-markdown-indexer-providers.yaml +6 -0
  144. package/providers/context/actions/evaluate-material-gaps.yaml +8 -0
  145. package/providers/context/actions/fail-main-index-run.yaml +7 -0
  146. package/providers/context/actions/fail-material-answer-run.yaml +7 -0
  147. package/providers/context/actions/fail-post-author-composer-run.yaml +7 -0
  148. package/providers/context/actions/inspect-index-candidate-review-readiness.yaml +8 -0
  149. package/providers/context/actions/inspect-index-profile-failure.yaml +7 -0
  150. package/providers/context/actions/inspect-indexer-dependencies.yaml +7 -0
  151. package/providers/context/actions/inspect-indexer-program-execution.yaml +7 -0
  152. package/providers/context/actions/inspect-indexer-project-proposal.yaml +7 -0
  153. package/providers/context/actions/inspect-markdown-provider-capture.yaml +7 -0
  154. package/providers/context/actions/inspect-material-answer-review.yaml +8 -0
  155. package/providers/context/actions/materialize-indexer-instructions.yaml +7 -0
  156. package/providers/context/actions/observe-indexer-project.yaml +7 -0
  157. package/providers/context/actions/observe-main-index-run-ledger.yaml +7 -0
  158. package/providers/context/actions/observe-material-answer-runs.yaml +7 -0
  159. package/providers/context/actions/observe-post-author-composer-worksets.yaml +7 -0
  160. package/providers/context/actions/override-index-profile-audit.yaml +7 -0
  161. package/providers/context/actions/prepare-indexer-customization-project.yaml +7 -0
  162. package/providers/context/actions/prepare-main-index-run-ledger.yaml +7 -0
  163. package/providers/context/actions/prepare-material-answer-runs.yaml +7 -0
  164. package/providers/context/actions/propose-indexer-customization.yaml +7 -0
  165. package/providers/context/actions/propose-overlay-question-amendment.yaml +7 -0
  166. package/providers/context/actions/rebind-indexer-selection-to-requirement.yaml +7 -0
  167. package/providers/context/actions/reconcile-indexer-results.yaml +7 -0
  168. package/providers/context/actions/record-index-profile-revision.yaml +7 -0
  169. package/providers/context/actions/report-index-profile-failure.yaml +7 -0
  170. package/providers/context/actions/report-indexer-incremental-impact.yaml +8 -0
  171. package/providers/context/actions/resolve-effective-composers.yaml +7 -0
  172. package/providers/context/actions/review-material-answer-candidate.yaml +8 -0
  173. package/providers/context/actions/revise-index-output.yaml +7 -0
  174. package/providers/context/actions/route-index-requirement-confirmation.yaml +8 -0
  175. package/providers/context/actions/route-indexer-provider-selection.yaml +7 -0
  176. package/providers/context/actions/run-indexer-agent-step.yaml +7 -0
  177. package/providers/context/actions/run-indexer-post-author-composer.yaml +7 -0
  178. package/providers/context/actions/run-material-answer-indexers.yaml +7 -0
  179. package/providers/context/actions/start-main-index-run.yaml +7 -0
  180. package/providers/context/actions/start-material-answer-run.yaml +7 -0
  181. package/providers/context/actions/start-post-author-composer-run.yaml +7 -0
  182. package/providers/context/actions/validate-indexer-contract-overlays.yaml +7 -0
  183. package/providers/context/actions/validate-indexer-customization.yaml +7 -0
  184. package/providers/context/actions/validate-indexer-selection-proposal.yaml +7 -0
  185. package/providers/context/actions/validate-main-index-run.yaml +7 -0
  186. package/providers/context/actions/validate-markdown-provider-selection.yaml +7 -0
  187. package/providers/context/actions/validate-subject-key-schemas.yaml +8 -0
  188. package/providers/context/codes.yaml +70 -0
  189. package/providers/context/graphs/indexer.yaml +1068 -0
  190. package/providers/context/graphs/workspace.yaml +20 -1
  191. package/providers/context/manifest.json +1433 -121
  192. package/providers/context/provider.yaml +3 -2
  193. package/providers/context/resources/manuals/reference/code-extractors.md +2 -2
  194. package/providers/context/resources/manuals/reference/project-api.md +2 -2
  195. package/providers/context/resources/procedures/code-extraction.md +6 -2
  196. package/providers/context/resources/procedures/code-index-audit.md +36 -6
  197. package/providers/context/resources/procedures/document-optimization.md +23 -4
  198. package/providers/context/resources/semantic/code-index/templates/adapter.md +9 -0
  199. package/providers/context/resources/semantic/code-index/templates/contracts-and-chains.md +81 -0
  200. package/providers/context/resources/views/resolved-indexer-instructions.yaml +23 -0
  201. package/providers/context/schemas/document-optimization-decisions.schema.json +1 -1
  202. package/providers/context/schemas/indexer-agent-step-input.schema.json +30 -0
  203. package/providers/context/schemas/indexer-agent-step-result.schema.json +47 -0
  204. package/providers/context/schemas/indexer-candidate-compile-input.schema.json +57 -0
  205. package/providers/context/schemas/indexer-candidate-compile-output.schema.json +38 -0
  206. package/providers/context/schemas/indexer-candidate-review-readiness-input.schema.json +46 -0
  207. package/providers/context/schemas/indexer-candidate-review-readiness-output.schema.json +104 -0
  208. package/providers/context/schemas/indexer-contract-overlay-authorization-input.schema.json +32 -0
  209. package/providers/context/schemas/indexer-contract-overlay-authorization-result.schema.json +121 -0
  210. package/providers/context/schemas/indexer-contract-overlay-validation-input.schema.json +90 -0
  211. package/providers/context/schemas/indexer-contract-overlay-validation-result.schema.json +158 -0
  212. package/providers/context/schemas/indexer-customization-project-preparation-result.schema.json +44 -0
  213. package/providers/context/schemas/indexer-customization-proposal-draft.schema.json +83 -0
  214. package/providers/context/schemas/indexer-customization-validation-result.schema.json +36 -0
  215. package/providers/context/schemas/indexer-dependency-authorization-input.schema.json +71 -0
  216. package/providers/context/schemas/indexer-dependency-authorization-result.schema.json +138 -0
  217. package/providers/context/schemas/indexer-incremental-impact-input.schema.json +31 -0
  218. package/providers/context/schemas/indexer-incremental-impact-output.schema.json +52 -0
  219. package/providers/context/schemas/indexer-main-lifecycle-input.schema.json +187 -0
  220. package/providers/context/schemas/indexer-main-lifecycle-output.schema.json +180 -0
  221. package/providers/context/schemas/indexer-markdown-provider-capture-input.schema.json +17 -0
  222. package/providers/context/schemas/indexer-markdown-provider-capture-output.schema.json +54 -0
  223. package/providers/context/schemas/indexer-markdown-provider-validation-input.schema.json +34 -0
  224. package/providers/context/schemas/indexer-markdown-provider-validation-output.schema.json +75 -0
  225. package/providers/context/schemas/indexer-material-answer-lifecycle-input.schema.json +90 -0
  226. package/providers/context/schemas/indexer-material-answer-lifecycle-output.schema.json +80 -0
  227. package/providers/context/schemas/indexer-material-answer-review-inspection-input.schema.json +32 -0
  228. package/providers/context/schemas/indexer-material-answer-review-inspection-output.schema.json +32 -0
  229. package/providers/context/schemas/indexer-material-answer-review-resolution-input.schema.json +19 -0
  230. package/providers/context/schemas/indexer-material-answer-review-resolution-output.schema.json +87 -0
  231. package/providers/context/schemas/indexer-material-gap-lifecycle-input.schema.json +86 -0
  232. package/providers/context/schemas/indexer-material-gap-lifecycle-output.schema.json +19 -0
  233. package/providers/context/schemas/indexer-materialize-request.schema.json +53 -0
  234. package/providers/context/schemas/indexer-materialized-resource.schema.json +57 -0
  235. package/providers/context/schemas/indexer-overlay-question-amendment.schema.json +13 -0
  236. package/providers/context/schemas/indexer-overlay-question-proposal-input.schema.json +40 -0
  237. package/providers/context/schemas/indexer-overlay-question-rebind-input.schema.json +35 -0
  238. package/providers/context/schemas/indexer-overlay-question-rebind-result.schema.json +25 -0
  239. package/providers/context/schemas/indexer-post-author-fragment-request.schema.json +26 -0
  240. package/providers/context/schemas/indexer-post-author-fragment-result.schema.json +18 -0
  241. package/providers/context/schemas/indexer-post-author-lifecycle-input.schema.json +94 -0
  242. package/providers/context/schemas/indexer-post-author-lifecycle-output.schema.json +72 -0
  243. package/providers/context/schemas/indexer-profile-failure-inspection-input.schema.json +13 -0
  244. package/providers/context/schemas/indexer-profile-failure-inspection-result.schema.json +19 -0
  245. package/providers/context/schemas/indexer-profile-failure-report-input.schema.json +22 -0
  246. package/providers/context/schemas/indexer-profile-failure-report-result.schema.json +49 -0
  247. package/providers/context/schemas/indexer-profile-override-decision.schema.json +20 -0
  248. package/providers/context/schemas/indexer-profile-override-result.schema.json +49 -0
  249. package/providers/context/schemas/indexer-profile-revision-agent-input.schema.json +18 -0
  250. package/providers/context/schemas/indexer-profile-revision-record-input.schema.json +31 -0
  251. package/providers/context/schemas/indexer-profile-revision-record-result.schema.json +45 -0
  252. package/providers/context/schemas/indexer-program-execution-authorization-input.schema.json +145 -0
  253. package/providers/context/schemas/indexer-program-execution-authorization-result.schema.json +60 -0
  254. package/providers/context/schemas/indexer-project-action-result.schema.json +19 -0
  255. package/providers/context/schemas/indexer-project-gate-input.schema.json +100 -0
  256. package/providers/context/schemas/indexer-project-observation-input.schema.json +16 -0
  257. package/providers/context/schemas/indexer-project-observation-result.schema.json +42 -0
  258. package/providers/context/schemas/indexer-provider-route-input.schema.json +55 -0
  259. package/providers/context/schemas/indexer-provider-route-report.schema.json +188 -0
  260. package/providers/context/schemas/indexer-requirement-confirmation-input.schema.json +27 -0
  261. package/providers/context/schemas/indexer-requirement-confirmation-output.schema.json +24 -0
  262. package/providers/context/schemas/indexer-result-reconciliation-input.schema.json +59 -0
  263. package/providers/context/schemas/indexer-result-reconciliation-output.schema.json +43 -0
  264. package/providers/context/schemas/indexer-selection-proposal-input.schema.json +12 -0
  265. package/providers/context/schemas/indexer-selection-proposal-validation.schema.json +23 -0
  266. package/providers/context/schemas/indexer-subject-reidentification-input.schema.json +37 -0
  267. package/providers/context/schemas/indexer-subject-reidentification-output.schema.json +31 -0
  268. package/providers/context/skills/configure-indexer-providers/SKILL.md +58 -0
  269. package/providers/context/skills/prepare-indexer-customization-project/SKILL.md +31 -0
  270. package/providers/context/skills/propose-indexer-customization/SKILL.md +40 -0
  271. package/providers/context/skills/revise-index-output/SKILL.md +12 -0
  272. package/providers/context/skills/run-indexer-agent-step/SKILL.md +20 -0
  273. package/providers/context/skills/run-indexer-post-author-composer/SKILL.md +21 -0
@@ -1,22 +1,11 @@
1
1
  ---
2
2
  name: context
3
- description: >
4
- Build or continue structured, traceable Agent knowledge from documents and code. Use the local `context` CLI for workspace writes.
3
+ description: Build or continue structured, traceable Agent knowledge from documents and code. Use the local `context` CLI for workspace writes.
5
4
  tools:
6
5
  - Bash
7
6
  ---
8
7
 
9
- # Context
10
-
11
- Public Context entry for agents that expose skills instead of slash commands.
12
-
13
- - Public entry: `context`
14
- - Host command names are installation-specific; use the command or skill surfaced by the current host instead of deriving a filesystem path from an example name.
15
- - CLI primitive prefix: `context ...`
16
-
17
- ---
18
-
19
- ## Workflow
8
+ ## Your Task
20
9
 
21
10
  Context is a knowledge management tool built for Agent knowledge workflows. It
22
11
  compiles Feishu/Lark documents, local Markdown, repository code, and manually
@@ -157,6 +146,81 @@ the same module problem, stop at the one aggregated human-guidance Gate. If a
157
146
  legacy workspace returns `route.extract.codeindex-migration-required`, execute
158
147
  only its migration command; do not rename `codegraph` paths manually.
159
148
 
149
+ ### Discover Indexer Providers before selection
150
+
151
+ For `indexer-provider-required`, `indexer-provider-unavailable`,
152
+ `indexer-customization-required`, `indexer-customization-invalid`, or
153
+ `indexer-customization-upstream-changed`, read
154
+ `node_modules/@c4a/context/docs/guides/indexer-provider-and-customization.md`
155
+ before proposing a selection or project change. It defines the registry-only
156
+ default, six-level customization ladder, upgrade conflict handling, debugging
157
+ commands, and the exit condition for each level. Do not replace it with a
158
+ remembered or host-specific workflow.
159
+
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
169
+ include each Skill name, readable exact version when available, and source type
170
+ (CLI-bundled community, workspace, installed plugin, or authorized marketplace
171
+ result). When the host already exposes an exact Skill root or `SKILL.md` path,
172
+ read only its YAML frontmatter and sibling `context-indexer.yaml` during
173
+ discovery. The manifest version is authoritative;
174
+ `metadata.context-provider-version` is a readable copy that must match it. Do
175
+ not load the Provider body or other guidance until the Route selects it. If the
176
+ host exposes no readable root or exact version, report the version as
177
+ unavailable rather than guessing it.
178
+
179
+ Group observations with the same Skill name and exact version into one
180
+ conversational item and list all observed source types on that item. An
181
+ 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
185
+ selection precedence. Do not search arbitrary directories, infer host cache
186
+ paths, install a plugin, or query a marketplace unless the user separately
187
+ authorizes it. Keep this discovery report only in the conversation: do not
188
+ write it to `src/`, `package.json`, lifecycle state, receipts, audit output, or
189
+ `dist/`. Do not repeat it during an unchanged task resume; repeat it only for a
190
+ new indexing task, a changed host-visible Skill set, or an explicit diagnostic
191
+ request.
192
+
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.
223
+
160
224
  ### Follow the current Route
161
225
 
162
226
  Treat `workflow.current` as the current-step authority:
@@ -1,28 +1,15 @@
1
1
  {
2
2
  "name": "c4a",
3
3
  "displayName": "C4A Context",
4
- "version": "0.6.19",
4
+ "version": "0.7.0",
5
5
  "description": "Start or continue a project-local knowledge workspace through one graph-routed entry.",
6
- "author": {
7
- "name": "Context4AI",
8
- "email": "support@context4ai.dev"
9
- },
6
+ "author": { "name": "Context4AI", "email": "support@context4ai.dev" },
10
7
  "homepage": "https://github.com/context4ai/c4a",
11
8
  "repository": "https://github.com/context4ai/c4a",
12
9
  "license": "MIT",
13
10
  "logo": "assets/logo.svg",
14
- "keywords": [
15
- "context",
16
- "knowledge",
17
- "citations",
18
- "agent-skills"
19
- ],
11
+ "keywords": ["context", "knowledge", "citations", "agent-skills"],
20
12
  "category": "developer-tools",
21
- "tags": [
22
- "knowledge",
23
- "documentation",
24
- "agent-skills",
25
- "citations"
26
- ],
13
+ "tags": ["knowledge", "documentation", "agent-skills", "citations"],
27
14
  "commands": "./commands/"
28
15
  }
@@ -2,4 +2,4 @@
2
2
 
3
3
  This directory is generated by `bun run build:plugin`.
4
4
  Do not edit files here directly.
5
- Edit `packages/context-cli/plugin/` and rerun the build instead.
5
+ Edit `plugins/context/` and rerun the build instead.
@@ -2,12 +2,13 @@
2
2
 
3
3
  This directory is generated by `bun run build:plugin`.
4
4
  Do not edit files here directly.
5
- Edit `packages/context-cli/plugin/` and rerun the build instead.
5
+ Edit `plugins/context/` and rerun the build instead.
6
6
 
7
7
  Install shape:
8
8
 
9
9
  - Marketplace/GitHub plugin shape: this directory is a plugin root with `.cursor-plugin/plugin.json` and `commands/`.
10
- - User entries are under `commands/`; Cursor command files are prefixed as `c4a-*` to avoid global slash-command collisions.
10
+ - The public entry is under `commands/`; Cursor command files are prefixed as `c4a-*` to avoid global slash-command collisions.
11
+ - Lifecycle Provider skills are installed separately into the shared user skill directory by `context plugin install`.
11
12
  - Local plugin fallback: symlink or copy this directory to `~/.cursor/plugins/local/c4a/` only when Marketplace import is unavailable.
12
13
 
13
14
  Cursor Marketplace installs this plugin root directly.
@@ -1,7 +1,5 @@
1
1
  ---
2
- description: "Build or continue structured, traceable Agent knowledge from documents and code."
3
- argument-hint: "[project-dir or user intent]"
4
- allowed-tools: Bash(context:*), Bash(bun:*), Bash(cd *)
2
+ description: "Build or continue structured, traceable Agent knowledge from documents and code. Use the local `context` CLI for workspace writes."
5
3
  ---
6
4
 
7
5
  Start or continue a C4A Context knowledge workspace.
@@ -149,6 +147,81 @@ the same module problem, stop at the one aggregated human-guidance Gate. If a
149
147
  legacy workspace returns `route.extract.codeindex-migration-required`, execute
150
148
  only its migration command; do not rename `codegraph` paths manually.
151
149
 
150
+ ### Discover Indexer Providers before selection
151
+
152
+ For `indexer-provider-required`, `indexer-provider-unavailable`,
153
+ `indexer-customization-required`, `indexer-customization-invalid`, or
154
+ `indexer-customization-upstream-changed`, read
155
+ `node_modules/@c4a/context/docs/guides/indexer-provider-and-customization.md`
156
+ before proposing a selection or project change. It defines the registry-only
157
+ default, six-level customization ladder, upgrade conflict handling, debugging
158
+ commands, and the exit condition for each level. Do not replace it with a
159
+ remembered or host-specific workflow.
160
+
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
170
+ include each Skill name, readable exact version when available, and source type
171
+ (CLI-bundled community, workspace, installed plugin, or authorized marketplace
172
+ result). When the host already exposes an exact Skill root or `SKILL.md` path,
173
+ read only its YAML frontmatter and sibling `context-indexer.yaml` during
174
+ discovery. The manifest version is authoritative;
175
+ `metadata.context-provider-version` is a readable copy that must match it. Do
176
+ not load the Provider body or other guidance until the Route selects it. If the
177
+ host exposes no readable root or exact version, report the version as
178
+ unavailable rather than guessing it.
179
+
180
+ Group observations with the same Skill name and exact version into one
181
+ conversational item and list all observed source types on that item. An
182
+ 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
186
+ selection precedence. Do not search arbitrary directories, infer host cache
187
+ paths, install a plugin, or query a marketplace unless the user separately
188
+ authorizes it. Keep this discovery report only in the conversation: do not
189
+ write it to `src/`, `package.json`, lifecycle state, receipts, audit output, or
190
+ `dist/`. Do not repeat it during an unchanged task resume; repeat it only for a
191
+ new indexing task, a changed host-visible Skill set, or an explicit diagnostic
192
+ request.
193
+
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.
224
+
152
225
  ### Follow the current Route
153
226
 
154
227
  Treat `workflow.current` as the current-step authority:
@@ -1,22 +1,11 @@
1
1
  ---
2
- name: c4a-context
3
- description: >
4
- Build or continue structured, traceable Agent knowledge from documents and code. Use the local `context` CLI for workspace writes.
2
+ name: context
3
+ description: Build or continue structured, traceable Agent knowledge from documents and code. Use the local `context` CLI for workspace writes.
5
4
  tools:
6
5
  - Bash
7
6
  ---
8
7
 
9
- # Context
10
-
11
- Public Context entry for agents that expose skills instead of slash commands.
12
-
13
- - Public entry: `c4a-context`
14
- - Host command names are installation-specific; use the command or skill surfaced by the current host instead of deriving a filesystem path from an example name.
15
- - CLI primitive prefix: `context ...`
16
-
17
- ---
18
-
19
- ## Workflow
8
+ ## Your Task
20
9
 
21
10
  Context is a knowledge management tool built for Agent knowledge workflows. It
22
11
  compiles Feishu/Lark documents, local Markdown, repository code, and manually
@@ -157,6 +146,81 @@ the same module problem, stop at the one aggregated human-guidance Gate. If a
157
146
  legacy workspace returns `route.extract.codeindex-migration-required`, execute
158
147
  only its migration command; do not rename `codegraph` paths manually.
159
148
 
149
+ ### Discover Indexer Providers before selection
150
+
151
+ For `indexer-provider-required`, `indexer-provider-unavailable`,
152
+ `indexer-customization-required`, `indexer-customization-invalid`, or
153
+ `indexer-customization-upstream-changed`, read
154
+ `node_modules/@c4a/context/docs/guides/indexer-provider-and-customization.md`
155
+ before proposing a selection or project change. It defines the registry-only
156
+ default, six-level customization ladder, upgrade conflict handling, debugging
157
+ commands, and the exit condition for each level. Do not replace it with a
158
+ remembered or host-specific workflow.
159
+
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
169
+ include each Skill name, readable exact version when available, and source type
170
+ (CLI-bundled community, workspace, installed plugin, or authorized marketplace
171
+ result). When the host already exposes an exact Skill root or `SKILL.md` path,
172
+ read only its YAML frontmatter and sibling `context-indexer.yaml` during
173
+ discovery. The manifest version is authoritative;
174
+ `metadata.context-provider-version` is a readable copy that must match it. Do
175
+ not load the Provider body or other guidance until the Route selects it. If the
176
+ host exposes no readable root or exact version, report the version as
177
+ unavailable rather than guessing it.
178
+
179
+ Group observations with the same Skill name and exact version into one
180
+ conversational item and list all observed source types on that item. An
181
+ 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
185
+ selection precedence. Do not search arbitrary directories, infer host cache
186
+ paths, install a plugin, or query a marketplace unless the user separately
187
+ authorizes it. Keep this discovery report only in the conversation: do not
188
+ write it to `src/`, `package.json`, lifecycle state, receipts, audit output, or
189
+ `dist/`. Do not repeat it during an unchanged task resume; repeat it only for a
190
+ new indexing task, a changed host-visible Skill set, or an explicit diagnostic
191
+ request.
192
+
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.
223
+
160
224
  ### Follow the current Route
161
225
 
162
226
  Treat `workflow.current` as the current-step authority:
@@ -0,0 +1,20 @@
1
+ ---
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.
4
+ metadata:
5
+ context-role: "indexer-provider"
6
+ context-public-entry: "false"
7
+ context-provider-version: "1.0.0"
8
+ ---
9
+
10
+ # Context Code Indexer
11
+
12
+ Provider authors must satisfy
13
+ `node_modules/@c4a/context/docs/guides/code-indexer-skill-authoring.md` and the
14
+ shared Provider/customization guide before publishing or extending this Skill.
15
+ Those documents are authoring contracts; the current workset and Route remain
16
+ execution authority.
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.
19
+
20
+ 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.
@@ -0,0 +1,230 @@
1
+ protocol: context.indexer.provider/v1
2
+ id: context-code-indexer
3
+ version: 1.0.0
4
+ domains: [code]
5
+
6
+ activation:
7
+ target_kinds: [repository, package, library, service, application]
8
+ required_signals:
9
+ - id: supported-source
10
+ description: The registered target scope contains source or contract files supported by Context.
11
+ supporting_signals:
12
+ - id: stable-entry
13
+ description: The target exposes a stable entry, protocol, command, route, export, or runtime boundary.
14
+ - id: usage-material
15
+ description: The readable scope contains examples, tests, documentation, or operational material.
16
+ negative_signals:
17
+ - id: generated-only
18
+ description: The scope contains only generated artifacts with no authoritative source boundary.
19
+ agent_questions:
20
+ - Which stable reader capability groups the complete eligible inventory?
21
+
22
+ provides:
23
+ profiles:
24
+ - monorepo-container
25
+ - web-application
26
+ - component-library
27
+ - sdk-library
28
+ - cli-tool
29
+ - plugin-extension
30
+ - api-service
31
+ - gateway-facade
32
+ - domain-service
33
+ - background-runtime
34
+ - event-consumer
35
+ - data-sync-reconciliation
36
+ - storage-repository
37
+ - adapter-integration
38
+ - contract-source
39
+ - derived-generated-source
40
+ partition_strategies:
41
+ - id: public-target-family
42
+ profiles: [component-library, sdk-library, plugin-extension, contract-source]
43
+ priority: 100
44
+ - id: canonical-semantic-subject
45
+ profiles:
46
+ - monorepo-container
47
+ - web-application
48
+ - component-library
49
+ - sdk-library
50
+ - cli-tool
51
+ - plugin-extension
52
+ - api-service
53
+ - gateway-facade
54
+ - domain-service
55
+ - background-runtime
56
+ - event-consumer
57
+ - data-sync-reconciliation
58
+ - storage-repository
59
+ - adapter-integration
60
+ - contract-source
61
+ - derived-generated-source
62
+ priority: 200
63
+ operations:
64
+ - id: main-index
65
+ consumes: context.indexer.main-workset/v1
66
+ produces: context.indexer.main-result/v1
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
+ layer_fragments:
74
+ - kind: derived-artifact-proposal
75
+ phase: post-author
76
+ produces: context.indexer.layer-fragment/v1
77
+ composers:
78
+ - id: public-contract
79
+ supported_profiles: [component-library, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, adapter-integration, contract-source, derived-generated-source]
80
+ contract:
81
+ instruction: references/composers/public-contract.md
82
+ primary_requirements: { fact_kinds: [public-surface], artifact_kinds: [content] }
83
+ derived_artifact_policy:
84
+ fragment_protocol: context.indexer.layer-fragment/v1
85
+ fragment_kind: derived-artifact-proposal
86
+ artifact_policy_variant: standard
87
+ artifact_kinds: [contract]
88
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
89
+ - id: protocol-boundary
90
+ supported_profiles: [web-application, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration, contract-source, derived-generated-source]
91
+ contract:
92
+ instruction: references/composers/protocol-boundary.md
93
+ primary_requirements: { fact_kinds: [protocol-operation], artifact_kinds: [contract] }
94
+ derived_artifact_policy:
95
+ fragment_protocol: context.indexer.layer-fragment/v1
96
+ fragment_kind: derived-artifact-proposal
97
+ artifact_policy_variant: standard
98
+ artifact_kinds: [contract]
99
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
100
+ - id: cross-module-chain
101
+ supported_profiles: [monorepo-container, web-application, component-library, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration]
102
+ contract:
103
+ instruction: references/composers/cross-module-chain.md
104
+ primary_requirements: { fact_kinds: [module-dependency], artifact_kinds: [content] }
105
+ derived_artifact_policy:
106
+ fragment_protocol: context.indexer.layer-fragment/v1
107
+ fragment_kind: derived-artifact-proposal
108
+ artifact_policy_variant: standard
109
+ artifact_kinds: [content]
110
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
111
+ - id: contracts-and-chains
112
+ supported_profiles: [monorepo-container, web-application, component-library, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration, contract-source, derived-generated-source]
113
+ contract:
114
+ instruction: references/composers/contracts-and-chains.md
115
+ primary_requirements: { fact_kinds: [contract-binding, module-dependency], artifact_kinds: [contract] }
116
+ derived_artifact_policy:
117
+ fragment_protocol: context.indexer.layer-fragment/v1
118
+ fragment_kind: derived-artifact-proposal
119
+ artifact_policy_variant: standard
120
+ artifact_kinds: [contract]
121
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
122
+ - id: event-flow
123
+ supported_profiles: [web-application, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, adapter-integration, contract-source]
124
+ contract:
125
+ instruction: references/composers/event-flow.md
126
+ primary_requirements: { fact_kinds: [event-binding], artifact_kinds: [content] }
127
+ derived_artifact_policy:
128
+ fragment_protocol: context.indexer.layer-fragment/v1
129
+ fragment_kind: derived-artifact-proposal
130
+ artifact_policy_variant: standard
131
+ artifact_kinds: [content]
132
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
133
+ - id: persistence-boundary
134
+ supported_profiles: [api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration]
135
+ contract:
136
+ instruction: references/composers/persistence-boundary.md
137
+ primary_requirements: { fact_kinds: [persistence-binding], artifact_kinds: [content] }
138
+ derived_artifact_policy:
139
+ fragment_protocol: context.indexer.layer-fragment/v1
140
+ fragment_kind: derived-artifact-proposal
141
+ artifact_policy_variant: standard
142
+ artifact_kinds: [content]
143
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
144
+ - id: examples-and-documentation
145
+ supported_profiles: [monorepo-container, web-application, component-library, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration, contract-source, derived-generated-source]
146
+ contract:
147
+ instruction: references/composers/examples-and-documentation.md
148
+ primary_requirements: { fact_kinds: [example-candidate], artifact_kinds: [content] }
149
+ derived_artifact_policy:
150
+ fragment_protocol: context.indexer.layer-fragment/v1
151
+ fragment_kind: derived-artifact-proposal
152
+ artifact_policy_variant: standard
153
+ artifact_kinds: [examples]
154
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
155
+ - id: development-and-delivery
156
+ supported_profiles: [monorepo-container, web-application, component-library, sdk-library, cli-tool, plugin-extension, api-service, gateway-facade, domain-service, background-runtime, event-consumer, data-sync-reconciliation, storage-repository, adapter-integration, contract-source, derived-generated-source]
157
+ contract:
158
+ instruction: references/composers/development-and-delivery.md
159
+ primary_requirements: { fact_kinds: [development-entry], artifact_kinds: [content] }
160
+ derived_artifact_policy:
161
+ fragment_protocol: context.indexer.layer-fragment/v1
162
+ fragment_kind: derived-artifact-proposal
163
+ artifact_policy_variant: standard
164
+ artifact_kinds: [content]
165
+ empty_result: { result_protocol: context.indexer.layer-fragment-result/v1, behavior: empty-fragment-set }
166
+ source_roles: [authoritative-source, public-contract-source, example-source, operational-source]
167
+ logical_units:
168
+ - id: semantic-subject
169
+ identity: canonical-subject-key
170
+ artifacts:
171
+ recommended: [content, contract, examples]
172
+ supported_policy_variants: [compact, standard, expanded]
173
+
174
+ provider:
175
+ instructions:
176
+ - path: references/indexer.md
177
+ profiles:
178
+ - monorepo-container
179
+ - web-application
180
+ - component-library
181
+ - sdk-library
182
+ - cli-tool
183
+ - plugin-extension
184
+ - api-service
185
+ - gateway-facade
186
+ - domain-service
187
+ - background-runtime
188
+ - event-consumer
189
+ - data-sync-reconciliation
190
+ - storage-repository
191
+ - adapter-integration
192
+ - contract-source
193
+ - derived-generated-source
194
+ templates:
195
+ - { id: monorepo-container, profile: monorepo-container, path: templates/monorepo-container.md }
196
+ - { id: web-application, profile: web-application, path: templates/web-application.md }
197
+ - { id: component-library, profile: component-library, path: templates/component-library.md }
198
+ - { id: sdk-library, profile: sdk-library, path: templates/sdk-library.md }
199
+ - { id: cli-tool, profile: cli-tool, path: templates/cli-tool.md }
200
+ - { id: plugin-extension, profile: plugin-extension, path: templates/plugin-extension.md }
201
+ - { id: api-service, profile: api-service, path: templates/api-service.md }
202
+ - { id: gateway-facade, profile: gateway-facade, path: templates/gateway-facade.md }
203
+ - { id: domain-service, profile: domain-service, path: templates/domain-service.md }
204
+ - { id: background-runtime, profile: background-runtime, path: templates/background-runtime.md }
205
+ - { id: event-consumer, profile: event-consumer, path: templates/event-consumer.md }
206
+ - { id: data-sync-reconciliation, profile: data-sync-reconciliation, path: templates/data-sync-reconciliation.md }
207
+ - { id: storage-repository, profile: storage-repository, path: templates/storage-repository.md }
208
+ - { id: adapter-integration, profile: adapter-integration, path: templates/adapter-integration.md }
209
+ - { id: contract-source, profile: contract-source, path: templates/contract-source.md }
210
+ - { id: derived-generated-source, profile: derived-generated-source, path: templates/derived-generated-source.md }
211
+ forbidden_fallbacks: [one-page-per-symbol, ordinal-batch-pages, inferred-runtime-chain]
212
+ completion_checks: [inventory-disposition-closure, subject-owner-closure, evidence-binding]
213
+
214
+ customization:
215
+ supports: [config, instructions-append, template-override, program-extend]
216
+
217
+ quality_guidance:
218
+ metric_ids:
219
+ - inventory-disposition-coverage
220
+ - duplicated-fact-target-ratio
221
+ - narrative-enumeration-ratio
222
+ - normalized-template-repetition-ratio
223
+ - implementation-body-ratio
224
+ - reference-only-reader-targets
225
+ - unresolved-ordinal-partitions
226
+ - discretionary-artifacts-per-logical-unit
227
+ - example-candidate-decision-coverage
228
+ - example-representative-coverage
229
+ - example-public-target-linkage
230
+ repair: references/metrics.md
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: context.code-indexer.composer.contracts-and-chains
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Contracts and chains composer
8
+
9
+ Use only when `contracts-and-chains` is present in the effective composer set.
10
+ Consume the exact primary view and return post-author proposals, never another
11
+ complete Indexer Result.
12
+
13
+ Require both `contract-binding` and `module-dependency` facts plus a primary
14
+ `contract` Artifact. A derived `contract` Artifact may summarize how a stable
15
+ contract identity is produced, transported, implemented, consumed, and traced
16
+ across registered modules. Preserve the authoritative schema and distinguish
17
+ generated bindings from source contracts.
18
+
19
+ Use the existing target, the `standard` policy, and evidence already bound to
20
+ the view. Do not merge unrelated protocols merely because they share a
21
+ transport. If either fact, the primary Artifact, or an evidenced end-to-end
22
+ binding is absent, return `context.indexer.layer-fragment-result/v1` with an
23
+ empty `fragments` array.
@@ -0,0 +1,22 @@
1
+ ---
2
+ id: context.code-indexer.composer.cross-module-chain
3
+ kind: procedure
4
+ media-type: text/markdown
5
+ ---
6
+
7
+ # Cross-module chain composer
8
+
9
+ Run only for the selected composer and the supplied `PrimaryResultView`.
10
+ Derived output supplements an existing target Node; it cannot create scope,
11
+ change ownership, or replace the primary Result.
12
+
13
+ Require an evidenced `module-dependency` fact and primary `content` Artifact.
14
+ Propose derived `content` only when a stable reader question crosses at least
15
+ two registered module boundaries and every hop has an unambiguous identity and
16
+ evidence. Describe trigger, ordered boundaries, transformations, outcome,
17
+ failure propagation, and recovery without copying each module page.
18
+
19
+ Use the `standard` policy and view evidence only. Import adjacency, directory
20
+ proximity, or a guessed runtime call is insufficient. Missing requirements,
21
+ an incomplete chain, or an already answered question yields the structured
22
+ empty result: the accepted layer-fragment result with `fragments: []`.