singularity-forge/TODO.md
2026-05-13 02:01:41 +02:00

2.2 KiB

TODO

Dump anything here.


Self-Feedback Inbox

[prompt-modularization] Phase 3 — migrate remaining builders to composeUnitContext v2

Context: Phase 1 (fragment infrastructure, 17-prompt Working Directory deduplication) and Phase 2 (5 stub manifests for deploy/smoke-production/release/rollback/challenge) shipped in commit ca5d869e3. 9 of 26 unit types are now fully manifest-driven via composeInlinedContext.

What's blocked and why:

Migrating the remaining 17 builders to composeInlinedContext (v1) is the wrong path because:

  1. inlineKnowledgeScoped and inlineGraphSubgraph are NOT in ARTIFACT_KEYS — these artifacts would remain imperative and undeclared in every manifest, making manifests structurally unreliable descriptions of actual builder behavior.
  2. Injecting knowledge/graph at the right position in the composed string requires fragile sentinel-string searches (e.g., body.lastIndexOf("### Task Summary:")). This pattern is already untested in the 2 migrated complex builders (research-milestone, complete-slice).
  3. composeUnitContext (v2) in unit-context-composer.js already has computed, prepend, and excerpt support — knowledge and graph inlining maps cleanly to computed entries. Migrating to v1 now creates a half-migration state that must be undone when v2 lands.

Recommended next slice:

  1. Add "knowledge" and "graph" to ARTIFACT_KEYS in unit-context-manifest.js.
  2. Register them as computed entries in relevant UNIT_MANIFESTS entries.
  3. Wire one builder (e.g., buildResearchSlicePrompt) through composeUnitContext v2 as pilot.
  4. Add position-assertion tests to already-migrated complex builders (research-milestone, complete-slice) to guard against silent ordering degradation.
  5. Then migrate remaining builders in batches: slice builders → milestone builders → execute-task.

Note on prompt-cache-optimizer.js: Entirely dead code — optimizeForCaching(), estimateCacheSavings(), computeCacheHitRate() have zero importers. reorderForCaching() is wired at phases-unit.js:519 but no cache_control markers are written to outgoing requests. Remove the file or wire it in the same slice that adds cache_control breakpoints.