@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
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.project-observation-result/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "state",
9
+ "proposal_digest",
10
+ "apply_receipt_digest",
11
+ "target_set_digest",
12
+ "requirement_set_digest",
13
+ "registry_digest",
14
+ "indexer_selection_digest",
15
+ "validation_report_digests",
16
+ "selection_proposal_input",
17
+ "observation_digest",
18
+ "result_digest"
19
+ ],
20
+ "properties": {
21
+ "protocol": { "const": "context.indexer.project-observation-result/v1" },
22
+ "state": { "const": "current" },
23
+ "proposal_digest": { "$ref": "#/$defs/digest" },
24
+ "apply_receipt_digest": { "$ref": "#/$defs/digest" },
25
+ "target_set_digest": { "$ref": "#/$defs/digest" },
26
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
27
+ "registry_digest": { "$ref": "#/$defs/digest" },
28
+ "indexer_selection_digest": { "$ref": "#/$defs/digest" },
29
+ "validation_report_digests": {
30
+ "type": "array",
31
+ "minItems": 1,
32
+ "uniqueItems": true,
33
+ "items": { "$ref": "#/$defs/digest" }
34
+ },
35
+ "selection_proposal_input": { "type": "object" },
36
+ "observation_digest": { "$ref": "#/$defs/digest" },
37
+ "result_digest": { "$ref": "#/$defs/digest" }
38
+ },
39
+ "$defs": {
40
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
41
+ }
42
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.provider-route-input/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "project_ref",
9
+ "registry",
10
+ "visible_skills",
11
+ "community_fallback_attempted",
12
+ "input_digest"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.provider-route-input/v1" },
16
+ "project_ref": { "type": "string", "minLength": 1 },
17
+ "registry": { "$ref": "#/$defs/registry" },
18
+ "visible_skills": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["skill", "version", "source_type"],
24
+ "properties": {
25
+ "skill": { "$ref": "#/$defs/id" },
26
+ "version": {
27
+ "anyOf": [
28
+ { "type": "string", "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$" },
29
+ { "type": "null" }
30
+ ]
31
+ },
32
+ "source_type": {
33
+ "enum": ["community-plugin", "cli-bundled", "workspace", "installed-plugin", "marketplace"]
34
+ }
35
+ }
36
+ }
37
+ },
38
+ "community_fallback_attempted": { "type": "boolean" },
39
+ "input_digest": { "$ref": "#/$defs/digest" }
40
+ },
41
+ "$defs": {
42
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._/-]*$" },
43
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
44
+ "registry": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["protocol", "requirements", "indexers"],
48
+ "properties": {
49
+ "protocol": { "const": "context.indexer.registry/v1" },
50
+ "requirements": { "type": "array", "minItems": 1, "items": { "type": "object" } },
51
+ "indexers": { "type": "array", "items": { "type": "object" } }
52
+ }
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,188 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.provider-route-report/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": [
7
+ "protocol",
8
+ "project_ref",
9
+ "input_digest",
10
+ "requirement_set_digest",
11
+ "registry_digest",
12
+ "visible_skill_set_digest",
13
+ "selected_skill_ids",
14
+ "composition_mode",
15
+ "community_fallback_attempted",
16
+ "unowned_required_owner_cells",
17
+ "conflicting_owner_cells",
18
+ "read_scope_overlaps",
19
+ "capability_gaps",
20
+ "capability_gap_proof",
21
+ "route",
22
+ "selection_proposal_input",
23
+ "report_digest"
24
+ ],
25
+ "properties": {
26
+ "protocol": { "const": "context.indexer.provider-route-report/v1" },
27
+ "project_ref": { "type": "string", "minLength": 1 },
28
+ "input_digest": { "$ref": "#/$defs/digest" },
29
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
30
+ "registry_digest": { "$ref": "#/$defs/digest" },
31
+ "visible_skill_set_digest": { "$ref": "#/$defs/digest" },
32
+ "selected_skill_ids": { "type": "array", "items": { "$ref": "#/$defs/id" } },
33
+ "composition_mode": { "enum": ["none", "single-skill", "multi-skill"] },
34
+ "community_fallback_attempted": { "type": "boolean" },
35
+ "unowned_required_owner_cells": { "type": "array", "items": { "type": "string", "minLength": 1 } },
36
+ "conflicting_owner_cells": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["owner_cell_ref", "indexer_ids", "skill_ids"],
42
+ "properties": {
43
+ "owner_cell_ref": { "type": "string", "minLength": 1 },
44
+ "indexer_ids": { "type": "array", "minItems": 2, "items": { "$ref": "#/$defs/id" } },
45
+ "skill_ids": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/id" } }
46
+ }
47
+ }
48
+ },
49
+ "read_scope_overlaps": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "required": ["left_indexer_id", "right_indexer_id", "scope_refs"],
55
+ "properties": {
56
+ "left_indexer_id": { "$ref": "#/$defs/id" },
57
+ "right_indexer_id": { "$ref": "#/$defs/id" },
58
+ "scope_refs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
59
+ }
60
+ }
61
+ },
62
+ "capability_gaps": {
63
+ "type": "array",
64
+ "items": {
65
+ "type": "object",
66
+ "additionalProperties": false,
67
+ "required": ["owner_cell_ref", "requirement_ref", "coverage_domain", "capability"],
68
+ "properties": {
69
+ "owner_cell_ref": { "type": ["string", "null"] },
70
+ "requirement_ref": { "anyOf": [{ "$ref": "#/$defs/id" }, { "type": "null" }] },
71
+ "coverage_domain": { "anyOf": [{ "$ref": "#/$defs/id" }, { "type": "null" }] },
72
+ "capability": { "type": "string", "minLength": 1 }
73
+ }
74
+ }
75
+ },
76
+ "capability_gap_proof": {
77
+ "anyOf": [
78
+ { "$ref": "#/$defs/capabilityGapProof" },
79
+ { "type": "null" }
80
+ ]
81
+ },
82
+ "route": {
83
+ "oneOf": [
84
+ { "$ref": "#/$defs/selectionRoute" },
85
+ { "$ref": "#/$defs/fallbackRoute" },
86
+ { "$ref": "#/$defs/conflictRoute" },
87
+ { "$ref": "#/$defs/gapRoute" }
88
+ ]
89
+ },
90
+ "selection_proposal_input": {
91
+ "anyOf": [
92
+ {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": ["protocol", "project_ref", "registry"],
96
+ "properties": {
97
+ "protocol": { "const": "context.indexer.selection-proposal-input/v1" },
98
+ "project_ref": { "type": "string", "minLength": 1 },
99
+ "registry": { "type": "object" }
100
+ }
101
+ },
102
+ { "type": "null" }
103
+ ]
104
+ },
105
+ "report_digest": { "$ref": "#/$defs/digest" }
106
+ },
107
+ "$defs": {
108
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9._/-]*$" },
109
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
110
+ "capabilityGap": {
111
+ "type": "object",
112
+ "additionalProperties": false,
113
+ "required": ["owner_cell_ref", "requirement_ref", "coverage_domain", "capability"],
114
+ "properties": {
115
+ "owner_cell_ref": { "type": ["string", "null"] },
116
+ "requirement_ref": { "anyOf": [{ "$ref": "#/$defs/id" }, { "type": "null" }] },
117
+ "coverage_domain": { "anyOf": [{ "$ref": "#/$defs/id" }, { "type": "null" }] },
118
+ "capability": { "type": "string", "minLength": 1 }
119
+ }
120
+ },
121
+ "capabilityGapProof": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "required": [
125
+ "protocol",
126
+ "project_ref",
127
+ "route_input_digest",
128
+ "requirement_set_digest",
129
+ "registry_digest",
130
+ "visible_skill_set_digest",
131
+ "community_fallback_attempted",
132
+ "gaps",
133
+ "gap_digest"
134
+ ],
135
+ "properties": {
136
+ "protocol": { "const": "context.indexer.capability-gap-proof/v1" },
137
+ "project_ref": { "type": "string", "minLength": 1 },
138
+ "route_input_digest": { "$ref": "#/$defs/digest" },
139
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
140
+ "registry_digest": { "$ref": "#/$defs/digest" },
141
+ "visible_skill_set_digest": { "$ref": "#/$defs/digest" },
142
+ "community_fallback_attempted": { "const": true },
143
+ "gaps": {
144
+ "type": "array",
145
+ "minItems": 1,
146
+ "items": { "$ref": "#/$defs/capabilityGap" }
147
+ },
148
+ "gap_digest": { "$ref": "#/$defs/digest" }
149
+ }
150
+ },
151
+ "selectionRoute": {
152
+ "type": "object", "additionalProperties": false,
153
+ "required": ["outcome", "graph_outcome", "next_action"],
154
+ "properties": {
155
+ "outcome": { "const": "selection-validation-required" },
156
+ "graph_outcome": { "const": "completed" },
157
+ "next_action": { "const": "validate-indexer-selection-proposal" }
158
+ }
159
+ },
160
+ "fallbackRoute": {
161
+ "type": "object", "additionalProperties": false,
162
+ "required": ["outcome", "graph_outcome", "next_action"],
163
+ "properties": {
164
+ "outcome": { "const": "community-fallback-required" },
165
+ "graph_outcome": { "const": "partial" },
166
+ "next_action": { "const": "configure-community-indexer-fallback" }
167
+ }
168
+ },
169
+ "conflictRoute": {
170
+ "type": "object", "additionalProperties": false,
171
+ "required": ["outcome", "graph_outcome", "next_action"],
172
+ "properties": {
173
+ "outcome": { "const": "indexer-provider-conflict" },
174
+ "graph_outcome": { "const": "waiting-user" },
175
+ "next_action": { "const": "configure-indexer-providers" }
176
+ }
177
+ },
178
+ "gapRoute": {
179
+ "type": "object", "additionalProperties": false,
180
+ "required": ["outcome", "graph_outcome", "next_action"],
181
+ "properties": {
182
+ "outcome": { "const": "indexer-customization-required" },
183
+ "graph_outcome": { "const": "blocked" },
184
+ "next_action": { "const": "propose-indexer-customization" }
185
+ }
186
+ }
187
+ }
188
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.requirement-confirmation-input/v1",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "required": ["protocol", "report"],
8
+ "properties": {
9
+ "protocol": { "const": "context.indexer.requirement-confirmation-route-input/v1" },
10
+ "report": { "type": "object" }
11
+ },
12
+ "additionalProperties": false
13
+ },
14
+ {
15
+ "type": "object",
16
+ "required": ["protocol", "report", "authority", "confirmed_by", "confirmed_at"],
17
+ "properties": {
18
+ "protocol": { "const": "context.indexer.requirement-confirmation-action-input/v1" },
19
+ "report": { "type": "object" },
20
+ "authority": { "enum": ["managed", "human"] },
21
+ "confirmed_by": { "type": "string", "minLength": 1 },
22
+ "confirmed_at": { "type": "string", "format": "date-time" }
23
+ },
24
+ "additionalProperties": false
25
+ }
26
+ ]
27
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.requirement-confirmation-output/v1",
4
+ "type": "object",
5
+ "required": ["protocol", "graph_outcome"],
6
+ "properties": {
7
+ "protocol": {
8
+ "enum": [
9
+ "context.indexer.requirement-confirmation-route-result/v1",
10
+ "context.indexer.requirement-confirmation-action-result/v1"
11
+ ]
12
+ },
13
+ "report": { "type": "object" },
14
+ "confirmation": { "type": "object" },
15
+ "outcome": {
16
+ "enum": [
17
+ "requirement-confirmation-required",
18
+ "requirement-contraction-confirmation-required"
19
+ ]
20
+ },
21
+ "graph_outcome": { "enum": ["completed", "waiting-user", "blocked"] }
22
+ },
23
+ "additionalProperties": false
24
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.result-reconciliation-input/v1",
4
+ "type": "object",
5
+ "required": [
6
+ "protocol",
7
+ "requirement_set_digest",
8
+ "question_target_inventory",
9
+ "resolved_questions",
10
+ "target_facts",
11
+ "allowed_selector_fact_paths",
12
+ "registered_material_sources"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.result-reconciliation-input/v1" },
16
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
17
+ "question_target_inventory": { "type": "object" },
18
+ "resolved_questions": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "object",
22
+ "required": ["requirement_ref", "question"],
23
+ "properties": {
24
+ "requirement_ref": { "type": "string", "minLength": 1 },
25
+ "question": { "type": "object" }
26
+ },
27
+ "additionalProperties": false
28
+ }
29
+ },
30
+ "target_facts": { "type": "object" },
31
+ "allowed_selector_fact_paths": {
32
+ "type": "array",
33
+ "items": { "type": "string", "minLength": 1 },
34
+ "uniqueItems": true
35
+ },
36
+ "registered_material_sources": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "required": ["source_ref", "source_input_digest", "evidence_kinds"],
41
+ "properties": {
42
+ "source_ref": { "type": "string", "minLength": 1 },
43
+ "source_input_digest": { "$ref": "#/$defs/digest" },
44
+ "evidence_kinds": {
45
+ "type": "array",
46
+ "items": { "type": "string", "minLength": 1 },
47
+ "minItems": 1,
48
+ "uniqueItems": true
49
+ }
50
+ },
51
+ "additionalProperties": false
52
+ }
53
+ }
54
+ },
55
+ "additionalProperties": false,
56
+ "$defs": {
57
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
58
+ }
59
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.coverage-completion-report/v1",
4
+ "type": "object",
5
+ "required": [
6
+ "protocol",
7
+ "requirement_set_digest",
8
+ "registry_digest",
9
+ "question_target_inventory_digest",
10
+ "registered_material_source_set_digest",
11
+ "domains",
12
+ "capability_gaps",
13
+ "material_gaps",
14
+ "blocking_count",
15
+ "partial_domain_count",
16
+ "outcome",
17
+ "graph_outcome",
18
+ "can_report_complete",
19
+ "report_digest"
20
+ ],
21
+ "properties": {
22
+ "protocol": { "const": "context.indexer.coverage-completion-report/v1" },
23
+ "requirement_set_digest": { "$ref": "#/$defs/digest" },
24
+ "registry_digest": { "$ref": "#/$defs/digest" },
25
+ "question_target_inventory_digest": { "$ref": "#/$defs/digest" },
26
+ "registered_material_source_set_digest": { "$ref": "#/$defs/digest" },
27
+ "domains": { "type": "array", "items": { "type": "object" } },
28
+ "capability_gaps": { "type": "array", "items": { "type": "object" } },
29
+ "material_gaps": { "type": "array", "items": { "type": "object" } },
30
+ "blocking_count": { "type": "integer", "minimum": 0 },
31
+ "partial_domain_count": { "type": "integer", "minimum": 0 },
32
+ "outcome": {
33
+ "enum": ["complete", "index-material-required", "indexer-capability-gap"]
34
+ },
35
+ "graph_outcome": { "enum": ["completed", "partial", "blocked"] },
36
+ "can_report_complete": { "type": "boolean" },
37
+ "report_digest": { "$ref": "#/$defs/digest" }
38
+ },
39
+ "additionalProperties": false,
40
+ "$defs": {
41
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
42
+ }
43
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.selection-proposal-input/v1",
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "required": ["protocol", "project_ref", "registry"],
7
+ "properties": {
8
+ "protocol": { "const": "context.indexer.selection-proposal-input/v1" },
9
+ "project_ref": { "type": "string", "minLength": 1 },
10
+ "registry": { "type": "object" }
11
+ }
12
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.selection-proposal-validation/v1",
4
+ "type": "object",
5
+ "required": [
6
+ "protocol",
7
+ "proposal",
8
+ "static_report",
9
+ "outcome",
10
+ "next_provider_requests",
11
+ "resolution_requests",
12
+ "validation_digest"
13
+ ],
14
+ "properties": {
15
+ "protocol": { "const": "context.indexer.selection-proposal-validation/v1" },
16
+ "proposal": { "type": "object" },
17
+ "static_report": { "type": "object" },
18
+ "outcome": { "const": "provider-resolution-required" },
19
+ "next_provider_requests": { "type": "array", "items": { "type": "object" } },
20
+ "resolution_requests": { "type": "array", "items": { "type": "object" } },
21
+ "validation_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
22
+ }
23
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.subject-reidentification-input/v1",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "required": ["protocol", "project_ref", "old_schema", "new_schema", "approved_subjects", "proposed_mappings"],
8
+ "properties": {
9
+ "protocol": { "const": "context.indexer.subject-key-validation-input/v1" },
10
+ "project_ref": { "type": "string", "minLength": 1 },
11
+ "old_schema": { "type": "object" },
12
+ "new_schema": { "type": "object" },
13
+ "approved_subjects": { "type": "array", "items": { "type": "object" } },
14
+ "proposed_mappings": { "type": "array", "items": { "type": "object" } },
15
+ "report": { "type": "object" },
16
+ "authorization": { "type": "object" }
17
+ },
18
+ "additionalProperties": false
19
+ },
20
+ {
21
+ "type": "object",
22
+ "required": ["protocol", "project_ref", "old_schema", "new_schema", "approved_subjects", "proposed_mappings", "report", "authorized_by", "authorized_at"],
23
+ "properties": {
24
+ "protocol": { "const": "context.indexer.subject-reidentification-confirmation-input/v1" },
25
+ "project_ref": { "type": "string", "minLength": 1 },
26
+ "old_schema": { "type": "object" },
27
+ "new_schema": { "type": "object" },
28
+ "approved_subjects": { "type": "array", "items": { "type": "object" } },
29
+ "proposed_mappings": { "type": "array", "items": { "type": "object" } },
30
+ "report": { "type": "object" },
31
+ "authorized_by": { "type": "string", "minLength": 1 },
32
+ "authorized_at": { "type": "string", "format": "date-time" }
33
+ },
34
+ "additionalProperties": false
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "context.indexer.subject-reidentification-output/v1",
4
+ "type": "object",
5
+ "required": ["protocol", "report", "graph_outcome"],
6
+ "properties": {
7
+ "protocol": {
8
+ "enum": [
9
+ "context.indexer.subject-key-validation-result/v1",
10
+ "context.indexer.subject-reidentification-confirmation-result/v1"
11
+ ]
12
+ },
13
+ "report": { "type": "object" },
14
+ "authorization": { "type": "object" },
15
+ "authorization_digest": {
16
+ "oneOf": [
17
+ { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
18
+ { "type": "null" }
19
+ ]
20
+ },
21
+ "outcome": {
22
+ "enum": [
23
+ "subject-key-schema-current",
24
+ "index-subject-reidentification-required",
25
+ "index-subject-reidentification-invalid"
26
+ ]
27
+ },
28
+ "graph_outcome": { "enum": ["completed", "blocked", "failed"] }
29
+ },
30
+ "additionalProperties": false
31
+ }
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: context-configure-indexer-providers
3
+ description: Build one path-free Context Indexer Provider selection from current requirements and visible Indexer Skills; use during the provider-selection Graph route, not for executing Providers or changing requirements.
4
+ metadata:
5
+ agent-graph: path:../../provider.yaml
6
+ agent-graph.graph: indexer
7
+ agent-graph.entry: provider-selection
8
+ ---
9
+
10
+ # Configure Indexer Providers
11
+
12
+ Read
13
+ `node_modules/@c4a/context/docs/guides/indexer-provider-and-customization.md`
14
+ for the registry-only default, Provider-layer rules, conflict handling and
15
+ completion conditions. This Action is the entry for
16
+ `indexer-provider-required`; when an exact distribution is unavailable, follow
17
+ the guide's `indexer-provider-unavailable` handling instead of substituting a
18
+ different version or cache.
19
+
20
+ Report the exact CLI-bundled catalog together with other Indexer entry Skills
21
+ already visible in this conversation. For an exact Skill root already exposed
22
+ by the Host, read only `SKILL.md` frontmatter and the sibling
23
+ `context-indexer.yaml`: the manifest version is authoritative and
24
+ `metadata.context-provider-version` must match it. Do not load Provider guidance
25
+ until selection. Group the same Skill name and exact version into one
26
+ conversation item with all observed source types; an installed copy of the
27
+ same CLI-bundled identity is not another Provider. Preserve distinct source
28
+ observations in `visible_skills`, keep different versions separate, and never
29
+ use source count or discovery order as precedence. Do not scan plugin caches or
30
+ persist this discovery list.
31
+
32
+ When the Graph enters through `markdown-provider`, first require the completed
33
+ capture report and report the visible `context-markdown-indexer*` Skills before
34
+ building the route input. Treat only the report's exact `source_inputs` as
35
+ current evidence. Do not infer semantic ownership from filenames, titles, or
36
+ headings, and do not persist the discovery list. Capture proves byte/currentness
37
+ only; the selected Markdown Provider remains responsible for semantic indexing.
38
+
39
+ Produce `context.indexer.provider-route-input/v1` for the current, unchanged
40
+ requirement set. Select portable distribution locators and exact versions and
41
+ integrities. Each required requirement/domain/source/module owner cell needs one
42
+ primary Indexer; overlapping read scope is allowed for enrichers. One Indexer
43
+ may combine a primary layer, supporting profiles, extension layers, and
44
+ composers, but Provider array order is not precedence.
45
+
46
+ On the first pass set `community_fallback_attempted: false`. If the CLI records
47
+ the route Action as `partial`, retry with the applicable CLI-bundled community
48
+ profile and set it to `true`. If the CLI reports conflicting primary owner cells,
49
+ do not choose one by name order: present the exact conflict and wait for a
50
+ decision. If fallback still leaves an unowned required cell, preserve the exact
51
+ CLI `capability_gap_proof` and record `blocked`; never invent a Provider or
52
+ weaken the requirement. Only the following `propose-indexer-customization`
53
+ Action may use that proof to draft a dependency-free minimal `extend`.
54
+
55
+ Record the CLI Route Action outcome exactly from `route.graph_outcome`. Only a
56
+ `completed` report may pass its `selection_proposal_input` to
57
+ `validate-indexer-selection-proposal`. Provider resolution and execution remain
58
+ separate Actions.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: prepare-indexer-customization-project
3
+ description: Resolve the exact validated customization selection and stage its CAS-bound project proposal.
4
+ ---
5
+
6
+ # Prepare Indexer customization project
7
+
8
+ Read
9
+ `node_modules/@c4a/context/docs/guides/indexer-provider-and-customization.md`
10
+ before staging a project proposal. If validation reports an invalid local
11
+ resource or upstream drift, preserve the exact
12
+ `indexer-customization-invalid`/`indexer-customization-upstream-changed`
13
+ diagnostic and return to reconciliation; do not silently drop or overwrite the
14
+ affected override.
15
+
16
+ Consume only the current `context.indexer.customization-validation-result/v1`.
17
+
18
+ 1. Pass `selection_proposal_input` to `context indexer validate-indexer-selection-proposal`.
19
+ 2. Resolve every emitted Provider request through `context indexer resolve-indexer-providers`; never scan a
20
+ plugin cache or substitute another version. Stage each resolved Bundle with
21
+ `context indexer stage-indexer-provider-bundle`.
22
+ 3. Build `context.indexer.customization-project-preparation-input/v1` with the exact validation digest,
23
+ static report, resolved/staged Bundle inputs, and current CLI operator/profile contracts. Run
24
+ `context indexer prepare-indexer-customization-project`.
25
+ 4. If the result is `program-authorization-required`, stop at the independent program-execution authority.
26
+ Do not invent the authority receipt and do not apply any source file.
27
+ 5. If the result is `project-confirmation-required`, preserve the returned proposal digest and staging
28
+ validation unchanged for the confirmation/apply route.
29
+
30
+ Never copy Provider files into the project, widen requirement scope, add dependency intents, or bypass the
31
+ content-addressed customization stage.