Harness Memory Promoter
Use this skill only when the user explicitly asks to promote reusable project knowledge into global or harness memory. Project-local facts are not promoted by default.
Required Inputs
Promotion must consume durable manifests instead of raw transcript or graph dumps:
- proposal:
improvement/proposals/<proposalId>.yaml
- independent review:
improvement/reviews/<proposalId>-review.yaml
- replay evidence:
improvement/replay/<proposalId>-replay.json
- rollback evidence for harness stable promotion:
improvement/rollback/<proposalId>-rollback.json
- release manifest for harness stable promotion:
improvement/releases/<proposalId>-release-manifest.json
Runtime ledger input is mandatory before any long-term memory write:
node scripts/runtime-state.mjs record-memory-promotion \
--run-id "{runId}" \
--goal-id "{goalId}" \
--memory-id "{memoryId}" \
--status promoted \
--evidence-json "{...fresh evidence...}" \
--reviewer-json "{...approved review...}" \
--replay-json "{...passed replay...}" \
--rollback-json "{...rollback plan...}" \
--scope-owner "{owner}" \
--json
If evidence, review, replay, rollback, or scope owner is missing, record a rejected ledger decision and stop promotion.
For harness self-improvement, the meta-project contract is:
projectId: moonshot-relay
knowledgeRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/projects/moonshot-relay/knowledge"
improvementRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/projects/moonshot-relay/improvement"
candidateReleaseRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/harness/releases/candidate"
stableReleaseRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/harness/releases/stable"
Required Flow
- Run from the
moonshot-relay repository root.
- Load the proposal and evidence manifests.
- Validate the proposal with
knowledge-improvement-lifecycle.mjs.
- Deny transcript-only, imported-only, secret-like, or untrusted external candidates with a durable reason.
- For
global-candidate, require independent review and replay evidence before promotion.
- For
harness-meta-project candidate promotion, require independent review, replay, and targeted self-test evidence.
- For
harness-meta-project stable promotion, require independent review, affected-project replay, targeted self-test, rollback, and release manifest evidence.
- Record the runtime ledger decision before attempting any memory write.
- Write compact promoted facts only after the lifecycle helper returns
approved_for_promotion and the ledger decision is promoted.
Hard Rules
- Never promote project-local facts by default.
- Never write directly from a source project into the harness graph.
- Never promote raw project graph dumps, raw logs, or raw transcripts.
- Never treat memory, project knowledge, or a promotion ledger decision as completion authority.
- Denials are durable evidence and must include a denial code and reason.
- Unsafe promotion denial must not block unrelated workflow.
- Live MemoryGraph or account-root promotion is forbidden during planning and staged modernization phases unless a controlled rollout approval is present.
- If MemoryGraph is unavailable, report the promotion write skip or failure; do not treat it as success.
- Preserve provenance tags including source project, proposal id, review id, replay id, and release manifest id when applicable.
- Rollback must use
node scripts/runtime-state.mjs rollback-memory-promotion ... and preserve the original audit row.
1---2name: harness-memory-promoter3description: Promote explicitly approved reusable project or harness knowledge after review, replay, rollback, and release evidence gates.4---56# Harness Memory Promoter78Use this skill only when the user explicitly asks to promote reusable project knowledge into global or harness memory. Project-local facts are not promoted by default.910## Required Inputs1112Promotion must consume durable manifests instead of raw transcript or graph dumps:1314- proposal: `improvement/proposals/<proposalId>.yaml`15- independent review: `improvement/reviews/<proposalId>-review.yaml`16- replay evidence: `improvement/replay/<proposalId>-replay.json`17- rollback evidence for harness stable promotion: `improvement/rollback/<proposalId>-rollback.json`18- release manifest for harness stable promotion: `improvement/releases/<proposalId>-release-manifest.json`1920Runtime ledger input is mandatory before any long-term memory write:2122```bash23node scripts/runtime-state.mjs record-memory-promotion \24 --run-id "{runId}" \25 --goal-id "{goalId}" \26 --memory-id "{memoryId}" \27 --status promoted \28 --evidence-json "{...fresh evidence...}" \29 --reviewer-json "{...approved review...}" \30 --replay-json "{...passed replay...}" \31 --rollback-json "{...rollback plan...}" \32 --scope-owner "{owner}" \33 --json34```3536If evidence, review, replay, rollback, or scope owner is missing, record a rejected ledger decision and stop promotion.3738For harness self-improvement, the meta-project contract is:3940```yaml41projectId: moonshot-relay42knowledgeRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/projects/moonshot-relay/knowledge"43improvementRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/projects/moonshot-relay/improvement"44candidateReleaseRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/harness/releases/candidate"45stableReleaseRoot: "${MOONSHOT_RELAY_HOME:-~/.moonshot-relay}/state/harness/releases/stable"46```4748## Required Flow49501. Run from the `moonshot-relay` repository root.512. Load the proposal and evidence manifests.523. Validate the proposal with `knowledge-improvement-lifecycle.mjs`.534. Deny transcript-only, imported-only, secret-like, or untrusted external candidates with a durable reason.545. For `global-candidate`, require independent review and replay evidence before promotion.556. For `harness-meta-project` candidate promotion, require independent review, replay, and targeted self-test evidence.567. For `harness-meta-project` stable promotion, require independent review, affected-project replay, targeted self-test, rollback, and release manifest evidence.578. Record the runtime ledger decision before attempting any memory write.589. Write compact promoted facts only after the lifecycle helper returns `approved_for_promotion` and the ledger decision is `promoted`.5960## Hard Rules6162- Never promote project-local facts by default.63- Never write directly from a source project into the harness graph.64- Never promote raw project graph dumps, raw logs, or raw transcripts.65- Never treat memory, project knowledge, or a promotion ledger decision as completion authority.66- Denials are durable evidence and must include a denial code and reason.67- Unsafe promotion denial must not block unrelated workflow.68- Live MemoryGraph or account-root promotion is forbidden during planning and staged modernization phases unless a controlled rollout approval is present.69- If MemoryGraph is unavailable, report the promotion write skip or failure; do not treat it as success.70- Preserve provenance tags including source project, proposal id, review id, replay id, and release manifest id when applicable.71- Rollback must use `node scripts/runtime-state.mjs rollback-memory-promotion ...` and preserve the original audit row.