ruvnet-brain 4.6.3 → 4.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.
- package/README.md +1 -1
- package/bin/install.mjs +6 -50
- package/config/practical-rule-catalog.json +22 -22
- package/console/app.js +1 -1
- package/console/architecture.html +2 -2
- package/package.json +2 -2
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/commands/checkpoint.md +22 -40
- package/plugin/commands/rnb-brief.md +18 -15
- package/plugin/hooks/codex-hooks.json +1 -58
- package/plugin/hooks/hook-contracts.json +19 -220
- package/plugin/hooks/hooks.json +1 -70
- package/plugin/mcp/managed-cli-interface.mjs +0 -56
- package/plugin/scripts/agentdb-recall-reader.mjs +29 -9
- package/plugin/scripts/agentdb-recall.mjs +27 -21
- package/plugin/scripts/brain-footprint.mjs +1 -1
- package/plugin/scripts/codex-hook-wrapper.mjs +13 -3
- package/plugin/scripts/completion-claim-evidence.mjs +1 -1
- package/plugin/scripts/continuation-gate.mjs +78 -1
- package/plugin/scripts/continuity-events.mjs +90 -82
- package/plugin/scripts/continuity-hook-policy.mjs +5 -14
- package/plugin/scripts/decision-gate.mjs +3 -3
- package/plugin/scripts/decision-recall-gate.mjs +141 -0
- package/plugin/scripts/decision-record.mjs +324 -0
- package/plugin/scripts/deferral-evidence.mjs +134 -0
- package/plugin/scripts/hook-failures.mjs +61 -0
- package/plugin/scripts/hook-shim.mjs +71 -6
- package/plugin/scripts/learn-capture.mjs +88 -37
- package/plugin/scripts/learning-store.mjs +70 -60
- package/plugin/scripts/node-sqlite.mjs +1 -1
- package/plugin/scripts/ruflo-bin.mjs +71 -1
- package/plugin/scripts/ruflo-memory-hooks.mjs +132 -0
- package/plugin/scripts/runtime-preferences.mjs +1 -1
- package/plugin/scripts/session-snapshot-hook.mjs +85 -332
- package/plugin/scripts/session-start-core.mjs +7 -9
- package/plugin/scripts/signal-watch.mjs +1 -1
- package/plugin/scripts/substitution-wall.mjs +222 -0
- package/plugin/scripts/turn-outcome-capture.mjs +74 -88
- package/scripts/codex-host-execution-proof.mjs +1 -1
- package/scripts/console-engine.mjs +0 -32
- package/scripts/deferral-replay.mjs +47 -0
- package/scripts/health-repair.mjs +1 -81
- package/scripts/hook-qualify-core.mjs +2 -2
- package/scripts/model-managed-workflow-service.mjs +9 -10
- package/scripts/model-routing-controller.mjs +9 -8
- package/scripts/no-silent-substitution.mjs +65 -1
- package/scripts/onboarding-console.mjs +8 -23
- package/scripts/product-integrity-contract.mjs +1 -1
- package/scripts/release-qualification-contract.mjs +9 -27
- package/scripts/remedy-registry.mjs +0 -18
- package/scripts/wired-check.mjs +1 -5
- package/plugin/scripts/continuity-brief.mjs +0 -357
- package/plugin/scripts/continuity-journal.mjs +0 -553
- package/plugin/scripts/learn-flush.mjs +0 -96
- package/plugin/scripts/learning-observation.mjs +0 -51
- package/plugin/scripts/learning-queue.mjs +0 -135
- package/plugin/scripts/learning-worker-supervisor.mjs +0 -79
- package/plugin/scripts/project-capture-queue.mjs +0 -357
- package/plugin/scripts/project-memory-enrollment.mjs +0 -203
- package/plugin/scripts/project-progression-checkpoint.mjs +0 -145
- package/plugin/scripts/project-progression-contract.mjs +0 -496
- package/plugin/scripts/project-progression-hook.mjs +0 -233
- package/plugin/scripts/project-progression-outbox.mjs +0 -225
- package/plugin/scripts/project-progression-producer.mjs +0 -309
- package/plugin/scripts/project-progression-reader.mjs +0 -304
- package/plugin/scripts/project-progression-session-start.mjs +0 -320
- package/plugin/scripts/project-progression-sources.mjs +0 -246
- package/plugin/scripts/project-progression-store.mjs +0 -723
- package/plugin/scripts/project-progression-suspension.mjs +0 -60
- package/plugin/scripts/project-transition-hook.mjs +0 -246
- package/plugin/scripts/session-snapshot-contract.mjs +0 -105
- package/plugin/scripts/turn-transport-journal.mjs +0 -108
- package/scripts/qa/progression-validation-benchmark.mjs +0 -66
- package/scripts/session-snapshot-contract.mjs +0 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Created: 2026-06-29 22:36:38 EDT
|
|
|
9
9
|
|
|
10
10
|
### Discover the stack. Read the source. Build with confidence.
|
|
11
11
|
|
|
12
|
-
[](plugin/.claude-plugin/plugin.json)
|
|
13
13
|
|
|
14
14
|
**A source-grounded companion for Claude Code and Codex that helps you find and use Reuven Cohen's (rUv's) RuvNet ecosystem.**
|
|
15
15
|
|
package/bin/install.mjs
CHANGED
|
@@ -89,7 +89,6 @@ import { installTerminalLaunchers } from '../scripts/model-terminal-launchers.mj
|
|
|
89
89
|
import { readConsoleReceipts, replaceStaleConsoles } from '../scripts/console-instances.mjs';
|
|
90
90
|
import { moveBrain, MoveRefused } from '../scripts/move-brain.mjs';
|
|
91
91
|
import { brainLocation } from '../plugin/scripts/brain-location.mjs';
|
|
92
|
-
import { cleanLegacyRufloDebris } from '../plugin/scripts/project-progression-store.mjs';
|
|
93
92
|
import { resolveProjectStore } from '../plugin/scripts/project-store-resolver.mjs';
|
|
94
93
|
import { runHostCli, waitForHostCli } from '../scripts/host-cli.mjs';
|
|
95
94
|
import {
|
|
@@ -1074,9 +1073,9 @@ export function serverDependencies(source, seen = new Set()) {
|
|
|
1074
1073
|
try { src = fs.readFileSync(file, 'utf8'); } catch { return; }
|
|
1075
1074
|
// Lazy [^'"]* (no \n exclusion) so a multi-line named import — `import {\n a,\n} from './x.mjs';`
|
|
1076
1075
|
// — is still seen: the exclusion used to stop at the first newline, so this walker silently
|
|
1077
|
-
// missed any dependency imported that way. Caught live 2026-09-27:
|
|
1078
|
-
//
|
|
1079
|
-
//
|
|
1076
|
+
// missed any dependency imported that way. Caught live 2026-09-27: a multi-line import in the
|
|
1077
|
+
// lifecycle hook never reached the Codex MCP server package, reproducing the exact
|
|
1078
|
+
// packaging-boundary failure this function's own header warns about.
|
|
1080
1079
|
for (const m of src.matchAll(/^\s*(?:import|export)[^'"]*?from\s*['"](\.[^'"]+)['"]/gm)) {
|
|
1081
1080
|
const spec = specPrefix ? path.join(specPrefix, m[1]) : m[1];
|
|
1082
1081
|
const from = path.resolve(path.dirname(file), m[1]);
|
|
@@ -1309,30 +1308,6 @@ export function withLiveConsoleState(recorded, { receiptDir, alive, probe } = {}
|
|
|
1309
1308
|
return { ...recorded, consoleRuntime: live };
|
|
1310
1309
|
}
|
|
1311
1310
|
|
|
1312
|
-
/**
|
|
1313
|
-
* 4.3.40's ruflo leftovers inside this project's `.swarm` (cleanLegacyRufloDebris). --update removes
|
|
1314
|
-
* them; --doctor only reports (dryRun). Either way a REFUSED artifact (unexpected contents, a symlink) is
|
|
1315
|
-
* printed, never dropped silently. Not a project (or no .swarm): nothing to say.
|
|
1316
|
-
*/
|
|
1317
|
-
export function reportLegacyRufloDebris({ projectDir = process.cwd(), dryRun = false } = {}) {
|
|
1318
|
-
let storeDir;
|
|
1319
|
-
try { storeDir = path.dirname(resolveProjectStore({ projectDir }).canonicalAgentDbPath); } catch { return null; }
|
|
1320
|
-
if (!fs.existsSync(storeDir)) return null;
|
|
1321
|
-
const result = cleanLegacyRufloDebris(storeDir, { dryRun });
|
|
1322
|
-
for (const entry of result.removed) {
|
|
1323
|
-
// Dry run applies the same checks (allowlist, mirror proof, in-use window); only the final
|
|
1324
|
-
// unchanged-since-proof comparison can still keep it at --update time.
|
|
1325
|
-
if (dryRun) info(`legacy ruflo debris from 4.3.40 in ${entry}: passes every check; --update removes it unless it is written to before then`);
|
|
1326
|
-
else ok(`removed legacy ruflo debris from 4.3.40: ${entry}`);
|
|
1327
|
-
}
|
|
1328
|
-
for (const { path: entry, reason, kept } of result.refused) {
|
|
1329
|
-
// A KEPT nested AgentDB holds rows (or may still be written): never suggest deleting it by hand.
|
|
1330
|
-
if (kept) warn(`left 4.3.40's nested ruflo store in place — ${entry}: ${reason}. It is checked again on every update.`);
|
|
1331
|
-
else warn(`left legacy ruflo debris in place — ${entry}: ${reason}. Inspect it; remove it yourself if it is ruflo's.`);
|
|
1332
|
-
}
|
|
1333
|
-
return result;
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
1311
|
export function consoleRestartState(identity, {
|
|
1337
1312
|
receiptDir = path.join(process.env.RUVNET_BRAIN_HOME || path.join(os.homedir(), '.cache', 'ruvnet-brain'), 'console-instances'),
|
|
1338
1313
|
alive, probe,
|
|
@@ -3127,7 +3102,6 @@ async function doctorRun({ json }) {
|
|
|
3127
3102
|
warn(`host convergence receipt is invalid: ${error.message}`);
|
|
3128
3103
|
}
|
|
3129
3104
|
}
|
|
3130
|
-
try { reportLegacyRufloDebris({ dryRun: true }); } catch (error) { warn(`legacy ruflo debris check failed: ${error.message}`); }
|
|
3131
3105
|
const brainHome = process.env.RUVNET_BRAIN_HOME || path.dirname(cacheDir);
|
|
3132
3106
|
const nightlyHealth = schedulerStatus({ platform: process.platform, env: process.env,
|
|
3133
3107
|
brainHome, kbDir: cacheDir });
|
|
@@ -3304,26 +3278,9 @@ async function doctorRun({ json }) {
|
|
|
3304
3278
|
c.dim('\n Heads-up: a window that was ALREADY open when you installed needs a restart to pick it up;\n newly-opened windows are fine.\n'),
|
|
3305
3279
|
);
|
|
3306
3280
|
|
|
3307
|
-
//
|
|
3308
|
-
//
|
|
3309
|
-
|
|
3310
|
-
// ONE VERDICT (re-review S2: it used to be narration only, so --json never saw it): advisory '!' when
|
|
3311
|
-
// stuck — recording is the project's opt-in memory, not the Brain's health — ✓ when proven, ○ otherwise.
|
|
3312
|
-
let agentdbLine = null;
|
|
3313
|
-
try {
|
|
3314
|
-
const { ContinuityJournal, recordingLine } = await import('../plugin/scripts/continuity-journal.mjs');
|
|
3315
|
-
const { resolveProjectStore } = await import('../plugin/scripts/project-store-resolver.mjs');
|
|
3316
|
-
const journal = new ContinuityJournal({ projectRoot: resolveProjectStore({ projectDir: process.cwd() }).projectRoot });
|
|
3317
|
-
if (fs.existsSync(journal.swarm)) {
|
|
3318
|
-
const status = journal.status();
|
|
3319
|
-
const detail = recordingLine(status).replace(/^AgentDB: /, '');
|
|
3320
|
-
agentdbLine = { id: 'agentdb', label: 'AgentDB', detail,
|
|
3321
|
-
state: status.stuck ? 'warn' : status.lastCommitAt && !status.notApplicable ? 'ok' : 'unknown',
|
|
3322
|
-
fix: status.stuck ? (status.problem === 'stuck-pending' ? 'ruflo doctor --fix (then the next session drains the outbox)' : 'node <plugin>/scripts/continuity-brief.mjs --clear') : null };
|
|
3323
|
-
}
|
|
3324
|
-
} catch (error) {
|
|
3325
|
-
agentdbLine = { id: 'agentdb', label: 'AgentDB', state: 'unknown', detail: `recording status unavailable: ${error.message}`, fix: null };
|
|
3326
|
-
}
|
|
3281
|
+
// AgentDB recording is proven per write: a refused or unverified ruflo write is a hook-failures row,
|
|
3282
|
+
// summarized at SessionStart. There is no local outbox to inspect here any more.
|
|
3283
|
+
const agentdbLine = null;
|
|
3327
3284
|
|
|
3328
3285
|
const { turnRecordingStatus } = await import('../plugin/scripts/turn-outcome-capture.mjs');
|
|
3329
3286
|
const turnStatus = turnRecordingStatus({ projectDir: process.cwd() });
|
|
@@ -4337,7 +4294,6 @@ async function runUpdate() {
|
|
|
4337
4294
|
warn(hostSynchronizationFailureMessage(convergence, active));
|
|
4338
4295
|
updateStatus = 1;
|
|
4339
4296
|
} else if (convergence.convergence?.notice) info(convergence.convergence.notice);
|
|
4340
|
-
try { reportLegacyRufloDebris(); } catch (error) { warn(`legacy ruflo debris cleanup failed: ${error.message}`); }
|
|
4341
4297
|
recordRefreshPhase(refreshReceipt, 'host-convergence', convergence.ok && convergence.convergence?.healthy === true ? 'PASS' : 'FAIL', {
|
|
4342
4298
|
state: convergence.convergence?.state || null, error: convergence.error || null,
|
|
4343
4299
|
...(convergence.convergence?.openSessions ? { openSessions: convergence.convergence.openSessions } : {}),
|
|
@@ -27,23 +27,23 @@
|
|
|
27
27
|
{"id":"P018","cohort":"approved-practical","label":"Prioritize applicable useful lessons","actionRule":"Select relevant applicable lessons and substantive patterns before generic telemetry, exclude test probes, and deliver useful evidence again on a later eligible prompt rather than suppressing it by session digest.","sourceRuleIds":["CX-RECALL-06","CX-RECALL-07","CX-RECALL-19","CX-CAPTURE-25","CX-OBSERVATION-10"],"sourceCitations":[{"path":"docs/adr/0101-agentdb-first.md","lines":[31,97],"sha256":"c09653d990a5906976be658560c87a6d777b54a81c51016ecb091e1e8e793ca6"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Fresh required phase enforcement is managed-path scoped. History is untrusted; automatic full relevance is not guaranteed.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"MEM","paths":["plugin/scripts/agentdb-recall.mjs","scripts/model-managed-workflow-service.mjs","plugin/scripts/project-store-resolver.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","mutation","review","memory"],"actions":["memory-recall","memory-opt-out"],"priority":2}},
|
|
28
28
|
{"id":"P019","cohort":"approved-practical","label":"Bound recall latency and output","actionRule":"Share the recall deadline across identity resolution and child calls, redact before fragmentation, bound output including Unicode metadata, and retire owned hung children rather than claiming a late or oversized result succeeded.","sourceRuleIds":["CX-RECALL-12","CX-RECALL-13","CX-RECALL-14","CX-RECALL-15","CX-RECALL-16","CX-RECALL-17","CX-RECALL-18","LK-ADR0011-07"],"sourceCitations":[{"path":"docs/adr/0101-agentdb-first.md","lines":[31,97],"sha256":"c09653d990a5906976be658560c87a6d777b54a81c51016ecb091e1e8e793ca6"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[140,141],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Fresh required phase enforcement is managed-path scoped. History is untrusted; automatic full relevance is not guaranteed.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"MEM","paths":["plugin/scripts/agentdb-recall.mjs","scripts/model-managed-workflow-service.mjs","plugin/scripts/project-store-resolver.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","mutation","review","memory"],"actions":["memory-recall","memory-opt-out"],"priority":2}},
|
|
29
29
|
{"id":"P020","cohort":"approved-practical","label":"Honor memory opt-out immediately","actionRule":"Recheck persisted path and project consent at each capture or replay boundary; explicit OFF, malformed consent or Brain OFF must stop the applicable action, even when an environment force flag is present.","sourceRuleIds":["CX-RECALL-20","CX-CAPTURE-12","CX-CAPTURE-13","CX-CAPTURE-14","CX-CAPTURE-15","CX-CAPTURE-16","LK-ADR0100-11"],"sourceCitations":[{"path":"docs/adr/0101-agentdb-first.md","lines":[31,97],"sha256":"c09653d990a5906976be658560c87a6d777b54a81c51016ecb091e1e8e793ca6"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[133,139],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Fresh required phase enforcement is managed-path scoped. History is untrusted; automatic full relevance is not guaranteed.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"MEM","paths":["plugin/scripts/agentdb-recall.mjs","scripts/model-managed-workflow-service.mjs","plugin/scripts/project-store-resolver.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["memory","learning"],"actions":["memory-opt-out"],"priority":2}},
|
|
30
|
-
{"id":"P021","cohort":"approved-practical","label":"Checkpoint meaningful project work","actionRule":"After meaningful work, append bounded, redacted project decisions, material outcomes, blockers and next work to the canonical project journal; do not overwrite another session's checkpoint.","sourceRuleIds":["CX-OWNER-13","CX-CAPTURE-19","LK-ADR0100-01","LK-ADR0073-01","LK-ADR0100-12"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[47,53],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[50,54],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[151,155],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
31
|
-
{"id":"P022","cohort":"approved-practical","label":"Fsync recovery state before success","actionRule":"Fsync the canonically bound recovery record before acknowledging capture or launching detached transport, and leave it REPLAY_REQUIRED until canonical storage is verified.","sourceRuleIds":["CX-CAPTURE-07","CX-CAPTURE-08","CX-CAPTURE-09","CX-PROGRESSION-01","CX-PROGRESSION-02","CX-PROGRESSION-03","CX-PROGRESSION-04","CX-PROGRESSION-11","CX-PROGRESSION-12","LK-ADR0073-10"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[124,126],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
32
|
-
{"id":"P023","cohort":"approved-practical","label":"Prove writes by exact readback","actionRule":"Acknowledge a memory commit only after exact key and content readback at the declared path, with independent canonical-row confirmation where required; a success line, search hit or mtime is not durability proof.","sourceRuleIds":["CX-LEARNING-04","CX-LEARNING-05","CX-LEARNING-06","CX-CAPTURE-09","LK-ADR0100-02","CX-OWNER-14","LK-ADR0063-02","LK-ADR0063-03","LK-ADR0063-05"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[57,61],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[62,63],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[75,77],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[128,139],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
33
|
-
{"id":"P024","cohort":"approved-practical","label":"Retain pending or conflicting writes","actionRule":"Retain original queued bytes on contention, failed readback or conflict; quarantine malformed or conflicting events without discarding unrelated pending work or evicting unfinished records to meet a soft cap.","sourceRuleIds":["CX-CAPTURE-20","CX-CAPTURE-21","CX-CAPTURE-22","CX-CAPTURE-23","LK-ADR0100-03","LK-ADR0100-10"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[61,63],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[99,103],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
34
|
-
{"id":"P025","cohort":"approved-practical","label":"Restore coherent state at startup","actionRule":"At SessionStart, resolve identity and consent, replay eligible debt within the shared deadline, then restore structurally enumerated, exact-retrieved coherent state as bounded untrusted context; an unavailable restore must remain visible.","sourceRuleIds":["CX-PROGRESSION-06","CX-PROGRESSION-07","CX-PROGRESSION-08","CX-PROGRESSION-10","CX-PROGRESSION-14","LK-ADR0073-02","LK-ADR0073-08","LK-ADR0100-05","CX-PROGRESSION-21","CX-PROGRESSION-22"],"sourceCitations":[{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[55,57],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[106,114],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[70,75],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
35
|
-
{"id":"P026","cohort":"approved-practical","label":"Preserve concurrent session branches","actionRule":"Append immutable session entries with payload digests and causal parents, preserve concurrent heads, and expose conflicting goals, next actions or artifact digests rather than silently choosing the latest writer.","sourceRuleIds":["CX-PROGRESSION-02","CX-PROGRESSION-03","CX-PROGRESSION-04","CX-PROGRESSION-05","CX-PROGRESSION-15","LK-ADR0073-03","LK-ADR0073-09"],"sourceCitations":[{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[58,58],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[116,120],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
36
|
-
{"id":"P027","cohort":"approved-practical","label":"Preserve pending work on compaction","actionRule":"Capture at supported compaction and interruption boundaries, retain unfinished work and receipt identities, and compact only verified closed history after restore-equivalence proof; a partial transcript tail is not lossless recovery.","sourceRuleIds":["CX-CORE-47","CX-CORE-48","CX-PROGRESSION-17","CX-PROGRESSION-18","LK-ADR0073-12","LK-ADR0073-13","DQ-063","LK-ADR0073-11"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[144,147],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[161,168],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":184,"lineEnd":188,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"normative cited passage; not whole-file semantic certification"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[134,136],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
37
|
-
{"id":"P028","cohort":"approved-practical","label":"Report incomplete recovery honestly","actionRule":"Report pending, quarantined, corrupt or timed-out restoration as degraded or unavailable, including missing platform durability guarantees; do not inject an old good checkpoint as if all new debt were settled.","sourceRuleIds":["CX-OBSERVATION-08","CX-OBSERVATION-09","CX-CAPTURE-10","CX-CAPTURE-11","CX-PROGRESSION-12","CX-PROGRESSION-13","CX-OBSERVATION-07","LK-ADR0100-06"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[76,79],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
38
|
-
{"id":"P029","cohort":"approved-practical","label":"Distinguish intent from tool outcome","actionRule":"Normalize each native observation as intent, success, failure or unknown; keep pre-tool intent pending and describe lightweight HEAD-only evidence honestly instead of treating it as an exact completed mutation.","sourceRuleIds":["CX-OBSERVATION-01","CX-OBSERVATION-02","CX-OBSERVATION-03","CX-OBSERVATION-04","CX-OBSERVATION-05","CX-OBSERVATION-06","LK-ADR0073-06","LK-ADR0073-07"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[91,92],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[93,95],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
39
|
-
{"id":"P030","cohort":"approved-practical","label":"Learn from real work continuously","actionRule":"Continuously capture eligible real workflow observations and use them through the existing bounded learner; manual seed rules or increased counters alone do not establish that behavior improves.","sourceRuleIds":["CX-PRINCIPLE-19","CX-PRINCIPLE-20","CX-FOUNDATION-01","CX-FOUNDATION-02","CX-FOUNDATION-03","CX-FOUNDATION-04","CX-FOUNDATION-05","CX-FOUNDATION-06","LK-ADR0011-12"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[195,196],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
40
|
-
{"id":"P031","cohort":"approved-practical","label":"Require consent for learning scope","actionRule":"Capture project learning only for adopted, consent-eligible projects; require separate persisted consent and an existing adopted user store for user-wide learning, and never import legacy home queues into project memory automatically.","sourceRuleIds":["CX-LEARNING-01","CX-LEARNING-02","CX-LEARNING-03","CX-LEARNING-04","CX-LEARNING-05","CX-LEARNING-06","CX-LEARNING-07","CX-LEARNING-08","CX-LEARNING-09","CX-LEARNING-10","CX-LEARNING-11","CX-LEARNING-12","CX-LEARNING-13"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
41
|
-
{"id":"P032","cohort":"approved-practical","label":"Verify inputs before distillation","actionRule":"Before structural distillation, verify the canonical observation rows and the source-reported native online snapshot, keep the operation bounded and zero-dollar, and report pattern progress without ratifying rules.","sourceRuleIds":["CX-LEARNING-14","CX-LEARNING-15","CX-LEARNING-16","CX-LEARNING-17","CX-LEARNING-18"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
42
|
-
{"id":"P033","cohort":"approved-practical","label":"Bound learning and retire workers","actionRule":"Limit automatic learning cycles and owned snapshot retention, and keep the queue fence until owned worker-tree retirement is confirmed; on unknown cleanup, pause recovery and retain the original observations.","sourceRuleIds":["CX-LEARNING-19","CX-LEARNING-20","CX-LEARNING-21","CX-LEARNING-22","CX-FOUNDATION-03"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
43
|
-
{"id":"P034","cohort":"approved-practical","label":"Keep inferred lessons nonauthoritative","actionRule":"Keep inferred observations and candidate lessons explicitly nonauthoritative, with their source and scope; only the established review and ratification boundary may turn them into standing instructions.","sourceRuleIds":["CX-CORE-42","CX-CORE-43","CX-CORE-44","CX-CORE-45","LK-ADR0100-07","LK-ADR0100-08"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[86,89],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[90,93],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
44
|
-
{"id":"P035","cohort":"approved-practical","label":"Require applicability for each lesson","actionRule":"Give each delivered lesson an observable applicability trigger and apply its project scope before bounded selection; a stored paragraph that cannot identify when it applies is not an operative rule.","sourceRuleIds":["CX-PRINCIPLE-20","CX-RECALL-06","CX-CORE-45"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0101-agentdb-first.md","lines":[31,97],"sha256":"c09653d990a5906976be658560c87a6d777b54a81c51016ecb091e1e8e793ca6"},{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
45
|
-
{"id":"P036","cohort":"approved-practical","label":"Require opt-in for blocking lessons","actionRule":"Keep ordinary lessons advisory unless the user opted into that specific blocking rule, and require an actual machine-verifiable check before describing a lesson as enforcing.","sourceRuleIds":["CX-PRINCIPLE-04","CX-PRINCIPLE-05","LK-ADR0063-01"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[60,66],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
46
|
-
{"id":"P037","cohort":"approved-practical","label":"Preserve demotion and dismissal","actionRule":"Honor explicit user dismissal or demotion across later offers and mining; unchanged state must not repeatedly re-offer an optional capability, and two declines must remain an answer.","sourceRuleIds":["CX-PRINCIPLE-14","CX-PRINCIPLE-15","CX-PRINCIPLE-16"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
30
|
+
{"id":"P021","cohort":"approved-practical","label":"Checkpoint meaningful project work","actionRule":"After meaningful work, append bounded, redacted project decisions, material outcomes, blockers and next work to the canonical project journal; do not overwrite another session's checkpoint.","sourceRuleIds":["CX-OWNER-13","CX-CAPTURE-19","LK-ADR0100-01","LK-ADR0073-01","LK-ADR0100-12"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[47,53],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[50,54],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[151,155],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
31
|
+
{"id":"P022","cohort":"approved-practical","label":"Fsync recovery state before success","actionRule":"Fsync the canonically bound recovery record before acknowledging capture or launching detached transport, and leave it REPLAY_REQUIRED until canonical storage is verified.","sourceRuleIds":["CX-CAPTURE-07","CX-CAPTURE-08","CX-CAPTURE-09","CX-PROGRESSION-01","CX-PROGRESSION-02","CX-PROGRESSION-03","CX-PROGRESSION-04","CX-PROGRESSION-11","CX-PROGRESSION-12","LK-ADR0073-10"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[124,126],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
32
|
+
{"id":"P023","cohort":"approved-practical","label":"Prove writes by exact readback","actionRule":"Acknowledge a memory commit only after exact key and content readback at the declared path, with independent canonical-row confirmation where required; a success line, search hit or mtime is not durability proof.","sourceRuleIds":["CX-LEARNING-04","CX-LEARNING-05","CX-LEARNING-06","CX-CAPTURE-09","LK-ADR0100-02","CX-OWNER-14","LK-ADR0063-02","LK-ADR0063-03","LK-ADR0063-05"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[57,61],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[62,63],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[75,77],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[128,139],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
33
|
+
{"id":"P024","cohort":"approved-practical","label":"Retain pending or conflicting writes","actionRule":"Retain original queued bytes on contention, failed readback or conflict; quarantine malformed or conflicting events without discarding unrelated pending work or evicting unfinished records to meet a soft cap.","sourceRuleIds":["CX-CAPTURE-20","CX-CAPTURE-21","CX-CAPTURE-22","CX-CAPTURE-23","LK-ADR0100-03","LK-ADR0100-10"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[61,63],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[99,103],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
34
|
+
{"id":"P025","cohort":"approved-practical","label":"Restore coherent state at startup","actionRule":"At SessionStart, resolve identity and consent, replay eligible debt within the shared deadline, then restore structurally enumerated, exact-retrieved coherent state as bounded untrusted context; an unavailable restore must remain visible.","sourceRuleIds":["CX-PROGRESSION-06","CX-PROGRESSION-07","CX-PROGRESSION-08","CX-PROGRESSION-10","CX-PROGRESSION-14","LK-ADR0073-02","LK-ADR0073-08","LK-ADR0100-05","CX-PROGRESSION-21","CX-PROGRESSION-22"],"sourceCitations":[{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[55,57],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[106,114],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[70,75],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
35
|
+
{"id":"P026","cohort":"approved-practical","label":"Preserve concurrent session branches","actionRule":"Append immutable session entries with payload digests and causal parents, preserve concurrent heads, and expose conflicting goals, next actions or artifact digests rather than silently choosing the latest writer.","sourceRuleIds":["CX-PROGRESSION-02","CX-PROGRESSION-03","CX-PROGRESSION-04","CX-PROGRESSION-05","CX-PROGRESSION-15","LK-ADR0073-03","LK-ADR0073-09"],"sourceCitations":[{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[58,58],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[116,120],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
36
|
+
{"id":"P027","cohort":"approved-practical","label":"Preserve pending work on compaction","actionRule":"Capture at supported compaction and interruption boundaries, retain unfinished work and receipt identities, and compact only verified closed history after restore-equivalence proof; a partial transcript tail is not lossless recovery.","sourceRuleIds":["CX-CORE-47","CX-CORE-48","CX-PROGRESSION-17","CX-PROGRESSION-18","LK-ADR0073-12","LK-ADR0073-13","DQ-063","LK-ADR0073-11"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[144,147],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[161,168],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":184,"lineEnd":188,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"normative cited passage; not whole-file semantic certification"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[134,136],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
37
|
+
{"id":"P028","cohort":"approved-practical","label":"Report incomplete recovery honestly","actionRule":"Report pending, quarantined, corrupt or timed-out restoration as degraded or unavailable, including missing platform durability guarantees; do not inject an old good checkpoint as if all new debt were settled.","sourceRuleIds":["CX-OBSERVATION-08","CX-OBSERVATION-09","CX-CAPTURE-10","CX-CAPTURE-11","CX-PROGRESSION-12","CX-PROGRESSION-13","CX-OBSERVATION-07","LK-ADR0100-06"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[76,79],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["recovery","compaction","memory","completion"],"actions":["checkpoint","recover"],"priority":2}},
|
|
38
|
+
{"id":"P029","cohort":"approved-practical","label":"Distinguish intent from tool outcome","actionRule":"Normalize each native observation as intent, success, failure or unknown; keep pre-tool intent pending and describe lightweight HEAD-only evidence honestly instead of treating it as an exact completed mutation.","sourceRuleIds":["CX-OBSERVATION-01","CX-OBSERVATION-02","CX-OBSERVATION-03","CX-OBSERVATION-04","CX-OBSERVATION-05","CX-OBSERVATION-06","LK-ADR0073-06","LK-ADR0073-07"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[91,92],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[93,95],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_CANONICAL_ROWS_ONLY","Claude":"PARTIAL_CANDIDATE_EVENT_DELIVERY_AND_SELECTED_ROWS_WITH_OWNER_CONFIG_ISOLATION_LIMIT","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
39
|
+
{"id":"P030","cohort":"approved-practical","label":"Learn from real work continuously","actionRule":"Continuously capture eligible real workflow observations and use them through the existing bounded learner; manual seed rules or increased counters alone do not establish that behavior improves.","sourceRuleIds":["CX-PRINCIPLE-19","CX-PRINCIPLE-20","CX-FOUNDATION-01","CX-FOUNDATION-02","CX-FOUNDATION-03","CX-FOUNDATION-04","CX-FOUNDATION-05","CX-FOUNDATION-06","LK-ADR0011-12"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[195,196],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
40
|
+
{"id":"P031","cohort":"approved-practical","label":"Require consent for learning scope","actionRule":"Capture project learning only for adopted, consent-eligible projects; require separate persisted consent and an existing adopted user store for user-wide learning, and never import legacy home queues into project memory automatically.","sourceRuleIds":["CX-LEARNING-01","CX-LEARNING-02","CX-LEARNING-03","CX-LEARNING-04","CX-LEARNING-05","CX-LEARNING-06","CX-LEARNING-07","CX-LEARNING-08","CX-LEARNING-09","CX-LEARNING-10","CX-LEARNING-11","CX-LEARNING-12","CX-LEARNING-13"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
41
|
+
{"id":"P032","cohort":"approved-practical","label":"Verify inputs before distillation","actionRule":"Before structural distillation, verify the canonical observation rows and the source-reported native online snapshot, keep the operation bounded and zero-dollar, and report pattern progress without ratifying rules.","sourceRuleIds":["CX-LEARNING-14","CX-LEARNING-15","CX-LEARNING-16","CX-LEARNING-17","CX-LEARNING-18"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
42
|
+
{"id":"P033","cohort":"approved-practical","label":"Bound learning and retire workers","actionRule":"Limit automatic learning cycles and owned snapshot retention, and keep the queue fence until owned worker-tree retirement is confirmed; on unknown cleanup, pause recovery and retain the original observations.","sourceRuleIds":["CX-LEARNING-19","CX-LEARNING-20","CX-LEARNING-21","CX-LEARNING-22","CX-FOUNDATION-03"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
43
|
+
{"id":"P034","cohort":"approved-practical","label":"Keep inferred lessons nonauthoritative","actionRule":"Keep inferred observations and candidate lessons explicitly nonauthoritative, with their source and scope; only the established review and ratification boundary may turn them into standing instructions.","sourceRuleIds":["CX-CORE-42","CX-CORE-43","CX-CORE-44","CX-CORE-45","LK-ADR0100-07","LK-ADR0100-08"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[86,89],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[90,93],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
44
|
+
{"id":"P035","cohort":"approved-practical","label":"Require applicability for each lesson","actionRule":"Give each delivered lesson an observable applicability trigger and apply its project scope before bounded selection; a stored paragraph that cannot identify when it applies is not an operative rule.","sourceRuleIds":["CX-PRINCIPLE-20","CX-RECALL-06","CX-CORE-45"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0101-agentdb-first.md","lines":[31,97],"sha256":"c09653d990a5906976be658560c87a6d777b54a81c51016ecb091e1e8e793ca6"},{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
45
|
+
{"id":"P036","cohort":"approved-practical","label":"Require opt-in for blocking lessons","actionRule":"Keep ordinary lessons advisory unless the user opted into that specific blocking rule, and require an actual machine-verifiable check before describing a lesson as enforcing.","sourceRuleIds":["CX-PRINCIPLE-04","CX-PRINCIPLE-05","LK-ADR0063-01"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0063-managed-memory-boundary-is-enforceable.md","lines":[60,66],"sha256":"0421a4c4cc9d63cf43cdc56d8d1e01a92c5d62c6ad0d463267ef40f86c539c18"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
46
|
+
{"id":"P037","cohort":"approved-practical","label":"Preserve demotion and dismissal","actionRule":"Honor explicit user dismissal or demotion across later offers and mining; unchanged state must not repeatedly re-offer an optional capability, and two declines must remain an answer.","sourceRuleIds":["CX-PRINCIPLE-14","CX-PRINCIPLE-15","CX-PRINCIPLE-16"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
47
47
|
{"id":"P038","cohort":"approved-practical","label":"Separate capture from improvement","actionRule":"Distinguish observation capture, learner invocation, retrieved patterns, changed behavior and measured improvement; evidence for one stage must not claim that the entire self-learning loop is complete.","sourceRuleIds":["CX-FOUNDATION-05","CX-FOUNDATION-06","CX-LEARNING-18","CX-LEARNING-19","CX-LEARNING-20","CX-LEARNING-21","CX-LEARNING-22","CX-LEARNING-23"],"sourceCitations":[{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"},{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Vendor capabilities and scheduled engine registration do not prove a closed learning improvement loop.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"EVAL","paths":["docs/adr/0011-verified-quality-program.md","docs/adr/0088-operational-evaluation-integrity.md","dream.config.json"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","mutation"],"actions":["learn","capture"],"priority":2}},
|
|
48
48
|
{"id":"P039","cohort":"approved-practical","label":"Measure improvement against baseline","actionRule":"Compare a source-bound candidate with a separately identified baseline on meaningful quality measures, preserve failures and deductions, and reject apparent savings or speedups that regress the required quality bound.","sourceRuleIds":["LK-ADR0011-01","LK-ADR0011-02","LK-ADR0011-03","LK-ADR0011-08","LK-ADR0011-09","LK-ADR0008-04","DQ-049"],"sourceCitations":[{"path":"docs/adr/0011-verified-quality-program.md","lines":[91,94],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[95,107],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[100,102],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[144,146],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[160,161],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0008-autonomous-engineering-loop.md","lines":[67,68],"sha256":"4de226bd0d4e9771dfbda037be75dc4ff1d46a07610a5e99267abdd41d6657d0"},{"path":"plugin/skills/brain-build/SKILL.md","lineStart":41,"lineEnd":48,"sha256":"e81c202f308e72bfb22da37da17cf4b117cf0b83b429a88f976ba94127f50117","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Vendor capabilities and scheduled engine registration do not prove a closed learning improvement loop.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"EVAL","paths":["docs/adr/0011-verified-quality-program.md","docs/adr/0088-operational-evaluation-integrity.md","dream.config.json"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["evaluation","mutation","recovery"],"actions":["evaluate","rollback"],"priority":2}},
|
|
49
49
|
{"id":"P040","cohort":"approved-practical","label":"Protect held-out quality expectations","actionRule":"Freeze independent held-out expectations before tuning or replay, retain oracle versions and source hashes, and use a new benchmark identity for intentional expectation changes rather than teaching the candidate the test.","sourceRuleIds":["LK-ADR0009-02","LK-ADR0011-01","LK-ADR0011-02","LK-ADR0088-05","LK-ADR0088-09"],"sourceCitations":[{"path":"docs/adr/0009-mirror-discipline-self-audit-and-qa.md","lines":[110,114],"sha256":"c6947fbf57a68832044ca0e074657147c6129d90ca3fb8f096db6c491585c96c"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[91,94],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[95,107],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"},{"path":"docs/adr/0088-operational-evaluation-integrity.md","lines":[51,51],"sha256":"9095010c3c687f749f065b18c4d67bde870b5a2a5789a499e2f646ba7c131d0d"},{"path":"docs/adr/0088-operational-evaluation-integrity.md","lines":[73,75],"sha256":"9095010c3c687f749f065b18c4d67bde870b5a2a5789a499e2f646ba7c131d0d"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Vendor capabilities and scheduled engine registration do not prove a closed learning improvement loop.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"EVAL","paths":["docs/adr/0011-verified-quality-program.md","docs/adr/0088-operational-evaluation-integrity.md","dream.config.json"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["evaluation","mutation","recovery"],"actions":["evaluate","rollback"],"priority":2}},
|
|
@@ -74,14 +74,14 @@
|
|
|
74
74
|
{"id":"P065","cohort":"approved-practical","label":"Retain native user and policy refusals","actionRule":"Preserve native plan/read-only modes and user denials, correlate any recoverable owned-scope denial exactly, and serialize concurrent approval questions with their original request IDs; unknown or unrelated denials remain refusals.","sourceRuleIds":["DQ-055","DQ-056","DQ-057","CX-OWNER-05"],"sourceCitations":[{"path":"docs/model-routing-operation.md","lineStart":22,"lineEnd":28,"sha256":"b4cb57b5217e1b1beab8bae8eb92eb658a5ae4f3a3b7950f416829e8d1181030","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"docs/model-routing-operation.md","lineStart":24,"lineEnd":28,"sha256":"b4cb57b5217e1b1beab8bae8eb92eb658a5ae4f3a3b7950f416829e8d1181030","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"docs/model-routing-operation.md","lineStart":10,"lineEnd":17,"sha256":"b4cb57b5217e1b1beab8bae8eb92eb658a5ae4f3a3b7950f416829e8d1181030","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."}],"declaredEnforcement":{"kind":"HARD","boundary":"Normal managed entry supports bounded native contracts; hooks cannot switch the parent model or force arbitrary native TUI actions.","nativeHostStatus":{"Codex":"PRIOR_BOUNDED_NATIVE_MANAGED_PROOF_ONLY_CURRENT_MEMORY_CONTROLLER_DELTAS_NOT_NATIVE_QUALIFIED","Claude":"PRIOR_BOUNDED_NATIVE_MANAGED_PROOF_ONLY_CURRENT_MEMORY_CONTROLLER_DELTAS_NOT_NATIVE_QUALIFIED","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"NAT","paths":["scripts/claude-controlled-terminal.mjs","scripts/codex-managed-terminal.mjs","scripts/model-routing-execution-adapters.mjs","scripts/model-routing-gateway.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","execution","mutation"],"actions":["parallel-dispatch","dispatch"],"priority":2}},
|
|
75
75
|
{"id":"P066","cohort":"approved-practical","label":"Finish owned cleanup before release","actionRule":"Keep owned slots and fences until child cleanup is confirmed, and refuse completion when process retirement, effects or usage remain uncertain; a dead parent alone does not prove the entire owned tree stopped.","sourceRuleIds":["DQ-057","CX-LEARNING-21","CX-LEARNING-22"],"sourceCitations":[{"path":"docs/model-routing-operation.md","lineStart":10,"lineEnd":17,"sha256":"b4cb57b5217e1b1beab8bae8eb92eb658a5ae4f3a3b7950f416829e8d1181030","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Normal managed entry supports bounded native contracts; hooks cannot switch the parent model or force arbitrary native TUI actions.","nativeHostStatus":{"Codex":"PRIOR_BOUNDED_NATIVE_MANAGED_PROOF_ONLY_CURRENT_MEMORY_CONTROLLER_DELTAS_NOT_NATIVE_QUALIFIED","Claude":"PRIOR_BOUNDED_NATIVE_MANAGED_PROOF_ONLY_CURRENT_MEMORY_CONTROLLER_DELTAS_NOT_NATIVE_QUALIFIED","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"NAT","paths":["scripts/claude-controlled-terminal.mjs","scripts/codex-managed-terminal.mjs","scripts/model-routing-execution-adapters.mjs","scripts/model-routing-gateway.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","execution","mutation"],"actions":["parallel-dispatch","dispatch"],"priority":2}},
|
|
76
76
|
{"id":"P067","cohort":"approved-practical","label":"Never treat a lease as authorization","actionRule":"Use ownership leases only to coordinate writers, never to grant tools, network, spend or protected side effects; the actual native and policy authorization remains independently required.","sourceRuleIds":["CX-OWNER-10","CX-POLICY-29"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"docs/adr/0075-knowledge-to-execution-enforcement.md","lines":[58,179],"sha256":"04cb8e6150c7431dc73da4d7b4c99407c0d82603d90936b1811302a3efb56fc4"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Normal managed entry supports bounded native contracts; hooks cannot switch the parent model or force arbitrary native TUI actions.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"NAT","paths":["scripts/claude-controlled-terminal.mjs","scripts/codex-managed-terminal.mjs","scripts/model-routing-execution-adapters.mjs","scripts/model-routing-gateway.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","execution","mutation"],"actions":["parallel-dispatch","dispatch"],"priority":2}},
|
|
77
|
-
{"id":"P068","cohort":"approved-practical","label":"Redact before truncation or storage","actionRule":"Redact credential and private-key values before truncation, query construction or persistence, keep breadcrumbs content-free, and include journals, receipts, logs and CLI arguments in the privacy boundary.","sourceRuleIds":["CX-CAPTURE-01","CX-CAPTURE-02","CX-CAPTURE-06","CX-CAPTURE-17","LK-ADR0100-09","CX-PROGRESSION-16","LK-ADR0073-05"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[94,94],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[80,83],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
78
|
-
{"id":"P069","cohort":"approved-practical","label":"Keep project facts out of global memory","actionRule":"Keep private project facts and turn outcomes in the canonical project store; cross-project learning needs explicit scope and consent and must not copy source content or secrets into a global learner.","sourceRuleIds":["CX-FOUNDATION-01","CX-CAPTURE-03","CX-CAPTURE-04","CX-CAPTURE-05","CX-LEARNING-10","CX-LEARNING-11","CX-LEARNING-12","CX-LEARNING-13"],"sourceCitations":[{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
77
|
+
{"id":"P068","cohort":"approved-practical","label":"Redact before truncation or storage","actionRule":"Redact credential and private-key values before truncation, query construction or persistence, keep breadcrumbs content-free, and include journals, receipts, logs and CLI arguments in the privacy boundary.","sourceRuleIds":["CX-CAPTURE-01","CX-CAPTURE-02","CX-CAPTURE-06","CX-CAPTURE-17","LK-ADR0100-09","CX-PROGRESSION-16","LK-ADR0073-05"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[94,94],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0073-agentdb-perennial-project-continuity.md","lines":[80,83],"sha256":"2c162990b4f749fe08f267bfc6b22733ddb3346a18b3d854c0087a7cddfb9857"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
78
|
+
{"id":"P069","cohort":"approved-practical","label":"Keep project facts out of global memory","actionRule":"Keep private project facts and turn outcomes in the canonical project store; cross-project learning needs explicit scope and consent and must not copy source content or secrets into a global learner.","sourceRuleIds":["CX-FOUNDATION-01","CX-CAPTURE-03","CX-CAPTURE-04","CX-CAPTURE-05","CX-LEARNING-10","CX-LEARNING-11","CX-LEARNING-12","CX-LEARNING-13"],"sourceCitations":[{"path":"docs/adr/0017-recursive-per-user-learning-loop.md","lines":[35,80],"sha256":"27426effbdedcbf039f7cb01fef3cd8aa08a4df110c3f90244c3083c9ab7a265"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
79
79
|
{"id":"P070","cohort":"approved-practical","label":"Preserve private and foreign artifacts","actionRule":"Preserve private overlays, foreign or customized hooks, ambiguous owners and active leases; delete an owned copy only after proving every unique private byte survives and never follow links into unowned data.","sourceRuleIds":["CX-OWNER-17","DQ-028","DQ-054","CX-FOOTPRINT-02","CX-FOOTPRINT-03","CX-FOOTPRINT-04","CX-FOOTPRINT-05","CX-FOOTPRINT-06","CX-FOOTPRINT-07","CX-CAPTURE-18","LK-ADR0100-04"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":178,"lineEnd":185,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"path":"docs/adr/0074-ruvnet-capability-claim-integrity.md","lineStart":171,"lineEnd":173,"sha256":"11b5a156644f00790cffc4d8bbc374df9cd60470166fd52b98d0d00ee3bd16b1","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"CONTRIBUTING.md","lines":[231,270],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"CONTRIBUTING.md","lines":[354,399],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/adr/0100-guaranteed-agentdb-continuity.md","lines":[64,69],"sha256":"3bc031e9f3d66578cbe7dc00108eec90bc8729f92612cf1a6e99f34bc1e5be1b"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Effective MDM/managed/local/foreign composition remains incomplete; ambiguity must remain non-destructive.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"OWN","paths":["plugin/scripts/brain-footprint.mjs","plugin/scripts/kb-copy-proof.mjs","plugin/scripts/hook-registry.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
80
80
|
{"id":"P071","cohort":"approved-practical","label":"Audit collisions inside each host","actionRule":"For each host separately, inspect the effective same-event hook composition and test ordering, duplicates, shared state, refusal precedence, deadlines and malformed payloads; comparing the two Brain manifests is not a full collision audit.","sourceRuleIds":["CX-OWNER-18","CX-CORE-01","CX-CORE-18","CX-CORE-31"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Source inventories cannot establish actual read completeness or whole-process execution.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"INV","paths":["docs/PRINCIPLES.md","docs/adr/0072-whole-product-integrity-conformance.md","scripts/hook-registry.mjs","scripts/source-scope-receipt.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
81
81
|
{"id":"P072","cohort":"approved-practical","label":"Disclose unsupported native surfaces","actionRule":"Call a host supported only after its real adapter preserves the common boundary semantics and passes relevant native acceptance; authentication, model routing or a missing lifecycle event cannot establish Grok hook parity.","sourceRuleIds":["CX-OBSERVATION-11","CX-OBSERVATION-12","CX-PROGRESSION-19","CX-PROGRESSION-20","DQ-065","DQ-027"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[432,448],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/ddd/0019-project-continuity-context.md","lines":[43,200],"sha256":"2c43665a500fa9cc7da67fd3c26eaab065489b65d1e0d9b054836373d0a0203d"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":185,"lineEnd":189,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"normative cited passage; not whole-file semantic certification"},{"path":"CONTRIBUTING.md","lineStart":416,"lineEnd":423,"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Normal managed entry supports bounded native contracts; hooks cannot switch the parent model or force arbitrary native TUI actions.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"NAT","paths":["scripts/claude-controlled-terminal.mjs","scripts/codex-managed-terminal.mjs","scripts/model-routing-execution-adapters.mjs","scripts/model-routing-gateway.mjs"],"existingHandlerIds":[],"deliverySurface":"shared-core-caller","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
82
82
|
{"id":"P073","cohort":"approved-practical","label":"Derive status instead of inventing it","actionRule":"Derive user-visible status and numbers from current trustworthy checks, preserve UNKNOWN distinctly from OFF or success, and never count lock-contention no-ops or registration as executed work.","sourceRuleIds":["CX-PRINCIPLE-08","CX-PRINCIPLE-09","CX-PRINCIPLE-10","LK-ADR0020-01","LK-ADR0020-02","LK-ADR0024-01","LK-ADR0024-02","LK-ADR0024-03","DQ-052"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"docs/adr/0020-anti-fabrication-gates.md","lines":[49,54],"sha256":"3b154ff573ff36d32befb576e3c0da33a6a23d46883ca0faf75d0664f1f6be54"},{"path":"docs/adr/0020-anti-fabrication-gates.md","lines":[58,62],"sha256":"3b154ff573ff36d32befb576e3c0da33a6a23d46883ca0faf75d0664f1f6be54"},{"path":"docs/adr/0024-derived-status-never-asserted.md","lines":[43,46],"sha256":"a1bc962fb77d32c5b0e2e9268c419e19f3a3de1125737748a2c1d27a84e2218c"},{"path":"docs/adr/0024-derived-status-never-asserted.md","lines":[47,47],"sha256":"a1bc962fb77d32c5b0e2e9268c419e19f3a3de1125737748a2c1d27a84e2218c"},{"path":"docs/adr/0024-derived-status-never-asserted.md","lines":[69,70],"sha256":"a1bc962fb77d32c5b0e2e9268c419e19f3a3de1125737748a2c1d27a84e2218c"},{"path":"docs/adr/0074-ruvnet-capability-claim-integrity.md","lineStart":63,"lineEnd":70,"sha256":"11b5a156644f00790cffc4d8bbc374df9cd60470166fd52b98d0d00ee3bd16b1","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Some requirements remain assistant/reviewer discipline; existing Stop checker cannot close every natural-language commitment.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"RPT","paths":["docs/PRINCIPLES.md","CONTRIBUTING.md","plugin/scripts/continuation-gate.mjs"],"existingHandlerIds":["continuation-gate"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
83
83
|
{"id":"P074","cohort":"approved-practical","label":"Keep proof layers distinct","actionRule":"State whether each result proves source behavior, a fixture, a native candidate, installed activation or publication, and preserve original failures; evidence from one layer cannot be silently promoted to another.","sourceRuleIds":["CX-PRINCIPLE-01","CX-PRINCIPLE-02","CX-PRINCIPLE-03","CX-CORE-03","CX-CORE-04","CX-CORE-05","CX-CORE-06","CX-OWNER-20","DQ-030","DQ-058","DQ-066","LK-ADR0009-05","LK-ADR0011-11"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"plugin/skills/release-proof/SKILL.md","lineStart":129,"lineEnd":135,"sha256":"3b2b170eaab878f440eca6b5c0b3c67dc14c7374f83af5d5bf2c4f3e94109163","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"kind":"current-owner-directive-relayed-by-root","source":"Current 2026-10-07 owner MEAT priority instruction","sha256":"ecf25eb2f4e3ef6352f28767363d825e437b6c4e0c41c800a978f108ca3dd68c","lineStart":null,"lineEnd":null,"note":"Conversation authority, not fabricated repository lines."},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":169,"lineEnd":176,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","markerMatched":true,"readCoverage":"cited normative/validator passage; file hash does not certify full semantic reading"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":169,"lineEnd":173,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"normative cited passage; not whole-file semantic certification"},{"path":"docs/adr/0009-mirror-discipline-self-audit-and-qa.md","lines":[124,126],"sha256":"c6947fbf57a68832044ca0e074657147c6129d90ca3fb8f096db6c491585c96c"},{"path":"docs/adr/0011-verified-quality-program.md","lines":[183,187],"sha256":"c598e604064d2eb4641f80faa144d255a55a9568dcd4868ccafed8e14a8d5c41"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Some requirements remain assistant/reviewer discipline; existing Stop checker cannot close every natural-language commitment.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"RPT","paths":["docs/PRINCIPLES.md","CONTRIBUTING.md","plugin/scripts/continuation-gate.mjs"],"existingHandlerIds":["continuation-gate"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
84
|
-
{"id":"P075","cohort":"approved-practical","label":"Keep suggestions optional and precise","actionRule":"Offer optional capabilities only on trustworthy useful evidence, explain the recommendation and alternative, honor dismissal, and keep uncertainty quiet rather than forcing an intrusive repeated suggestion.","sourceRuleIds":["CX-PRINCIPLE-04","CX-PRINCIPLE-05","CX-PRINCIPLE-06","CX-PRINCIPLE-07","CX-PRINCIPLE-13","CX-PRINCIPLE-14","CX-PRINCIPLE-15","CX-PRINCIPLE-16"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
84
|
+
{"id":"P075","cohort":"approved-practical","label":"Keep suggestions optional and precise","actionRule":"Offer optional capabilities only on trustworthy useful evidence, explain the recommendation and alternative, honor dismissal, and keep uncertainty quiet rather than forcing an intrusive repeated suggestion.","sourceRuleIds":["CX-PRINCIPLE-04","CX-PRINCIPLE-05","CX-PRINCIPLE-06","CX-PRINCIPLE-07","CX-PRINCIPLE-13","CX-PRINCIPLE-14","CX-PRINCIPLE-15","CX-PRINCIPLE-16"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Observation and structural pattern progress are not ratification or measured semantic improvement. Automatic exact rollback unavailable.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
85
85
|
{"id":"P076","cohort":"approved-practical","label":"Show supported remedies and limits","actionRule":"For every reported failure or optional recommendation, name a supported concrete remedy, its relevant limits and inverse; do not present a nonfunctional button or an unsupported action as a fix.","sourceRuleIds":["CX-PRINCIPLE-06","CX-PRINCIPLE-07","CX-PRINCIPLE-11","CX-PRINCIPLE-12","CX-FOOTPRINT-13"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"CONTRIBUTING.md","lines":[231,270],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"ADVISORY","boundary":"Some requirements remain assistant/reviewer discipline; existing Stop checker cannot close every natural-language commitment.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"RPT","paths":["docs/PRINCIPLES.md","CONTRIBUTING.md","plugin/scripts/continuation-gate.mjs"],"existingHandlerIds":["continuation-gate"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["mutation","memory","learning","review","maintenance"],"actions":["privacy","ownership","config-change"],"priority":2}},
|
|
86
86
|
{"id":"P077","cohort":"approved-practical","label":"Keep communication clear and bounded","actionRule":"Report concise verified outcomes, remaining gaps and next actions using readable terminal formatting; avoid raw document or log dumps and never substitute a status report for task completion.","sourceRuleIds":["CX-OWNER-26","CX-CORE-23","CX-CORE-24","CX-CORE-25"],"sourceCitations":[{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."},{"path":"CONTRIBUTING.md","lines":[275,316],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"ADVISORY","boundary":"Some requirements remain assistant/reviewer discipline; existing Stop checker cannot close every natural-language commitment.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"RPT","paths":["docs/PRINCIPLES.md","CONTRIBUTING.md","plugin/scripts/continuation-gate.mjs"],"existingHandlerIds":["continuation-gate"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["completion"],"actions":[],"priority":2}},
|
|
87
87
|
{"id":"P078","cohort":"approved-practical","label":"Include every test in the QA contract","actionRule":"Keep every retained test and workflow classified in the canonical required, conditional, manual, held or retired QA inventory with a reason and owner; report omitted lanes as explicit non-pass states.","sourceRuleIds":["CX-POLICY-25","CX-POLICY-26","DQ-018","DQ-019","DQ-020","DQ-021","DQ-022"],"sourceCitations":[{"path":"docs/adr/0075-knowledge-to-execution-enforcement.md","lines":[58,179],"sha256":"04cb8e6150c7431dc73da4d7b4c99407c0d82603d90936b1811302a3efb56fc4"},{"path":"CONTRIBUTING.md","lineStart":413,"lineEnd":420,"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":182,"lineEnd":189,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"path":"docs/adr/0072-whole-product-integrity-conformance.md","lineStart":207,"lineEnd":214,"sha256":"0e606c50cb73eeb2000a8ad3b33c7709e0bbc119a8051c1213e65b46b133a57b","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"path":"plugin/skills/release-proof/SKILL.md","lineStart":119,"lineEnd":126,"sha256":"3b2b170eaab878f440eca6b5c0b3c67dc14c7374f83af5d5bf2c4f3e94109163","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"},{"path":"plugin/skills/release-proof/SKILL.md","lineStart":20,"lineEnd":27,"sha256":"3b2b170eaab878f440eca6b5c0b3c67dc14c7374f83af5d5bf2c4f3e94109163","readCoverage":"cited normative/validator passage; hash is inventory, not whole-file semantic review"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"A source graph or test count is not full business proof; current integrated qualification has not been claimed.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"QA","paths":["scripts/release-qualification-contract.mjs","scripts/release-qualification.mjs","scripts/qa-runner.mjs","scripts/product-integrity-contract.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["checks","review"],"actions":[],"priority":2}},
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
{"id":"P095","cohort":"approved-practical","label":"Derive provenance from one ledger","actionRule":"Use the canonical per-store generation ledger as provenance authority and derive its public projections and census from the same exact bytes instead of restating source identities independently.","sourceRuleIds":["CX-CORPUS-29","CX-CORPUS-12"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[110,229],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"NOTCHECKED","boundary":"Source-defined behavior; current full installed update proof not refreshed by this hook review.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"UPD","paths":["scripts/approved-runtime.mjs","scripts/corpus-reconcile.mjs","kb/forge-update.mjs","plugin/scripts/host-update.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["maintenance","release","recovery"],"actions":["update","doctor","disk","ownership"],"priority":2}},
|
|
105
105
|
{"id":"P096","cohort":"approved-practical","label":"Bound owned footprint without data loss","actionRule":"Classify every new owned artifact and bound completed logs, receipts and generations, but retain unknown or unique data, active transactions and unfinished recovery even when retention limits are under pressure.","sourceRuleIds":["CX-FOOTPRINT-01","CX-FOOTPRINT-02","CX-FOOTPRINT-03","CX-FOOTPRINT-04","CX-FOOTPRINT-05","CX-FOOTPRINT-06","CX-FOOTPRINT-07","CX-FOOTPRINT-08"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[231,270],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"NOTCHECKED","boundary":"Effective MDM/managed/local/foreign composition remains incomplete; ambiguity must remain non-destructive.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"OWN","paths":["plugin/scripts/brain-footprint.mjs","plugin/scripts/kb-copy-proof.mjs","plugin/scripts/hook-registry.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["maintenance","release","recovery"],"actions":["update","doctor","disk","ownership"],"priority":2}},
|
|
106
106
|
{"id":"P097","cohort":"approved-practical","label":"Make doctor reflect actual checked state","actionRule":"Make doctor text, JSON and exit status agree on the same actual checks; distinguish structural corruption from advisory age, and never turn absent signature evidence or an unreadable source into a verified-current claim.","sourceRuleIds":["CX-FOOTPRINT-09","CX-FOOTPRINT-10","CX-FOOTPRINT-11","CX-FOOTPRINT-12","CX-FOOTPRINT-13"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[231,270],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"}],"declaredEnforcement":{"kind":"NOTCHECKED","boundary":"Effective MDM/managed/local/foreign composition remains incomplete; ambiguity must remain non-destructive.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"OWN","paths":["plugin/scripts/brain-footprint.mjs","plugin/scripts/kb-copy-proof.mjs","plugin/scripts/hook-registry.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["maintenance","release","recovery"],"actions":["update","doctor","disk","ownership"],"priority":2}},
|
|
107
|
-
{"id":"P098","cohort":"approved-practical","label":"Keep policy and result receipts durable","actionRule":"Append consequential policy, selected executor, grounding, recall and result receipts to the canonical project store with exact source identity and readback; the receipt records evidence and never grants publication authority.","sourceRuleIds":["CX-POLICY-01","CX-POLICY-02","CX-POLICY-03","CX-POLICY-04","CX-POLICY-05","CX-POLICY-06","CX-POLICY-27","CX-POLICY-28","CX-POLICY-29"],"sourceCitations":[{"path":"docs/adr/0075-knowledge-to-execution-enforcement.md","lines":[58,179],"sha256":"04cb8e6150c7431dc73da4d7b4c99407c0d82603d90936b1811302a3efb56fc4"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/
|
|
107
|
+
{"id":"P098","cohort":"approved-practical","label":"Keep policy and result receipts durable","actionRule":"Append consequential policy, selected executor, grounding, recall and result receipts to the canonical project store with exact source identity and readback; the receipt records evidence and never grants publication authority.","sourceRuleIds":["CX-POLICY-01","CX-POLICY-02","CX-POLICY-03","CX-POLICY-04","CX-POLICY-05","CX-POLICY-06","CX-POLICY-27","CX-POLICY-28","CX-POLICY-29"],"sourceCitations":[{"path":"docs/adr/0075-knowledge-to-execution-enforcement.md","lines":[58,179],"sha256":"04cb8e6150c7431dc73da4d7b4c99407c0d82603d90936b1811302a3efb56fc4"}],"declaredEnforcement":{"kind":"PARTIAL","boundary":"Pending debt retained; head-only/fail-open observations do not satisfy full lossless cross-host progression.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"JRN","paths":["plugin/scripts/turn-outcome-capture.mjs","plugin/scripts/ruflo-memory-hooks.mjs","plugin/scripts/session-start-core.mjs","plugin/scripts/session-snapshot.mjs"],"existingHandlerIds":["session-snapshot"],"deliverySurface":"existing-shared-handler","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["maintenance","release","recovery"],"actions":["update","doctor","disk","ownership"],"priority":2}},
|
|
108
108
|
{"id":"P099","cohort":"approved-practical","label":"Respect current owner scope decisions","actionRule":"Bring genuine changes to general product scope or policy to the owner, follow current authorized choices, and record source contradictions; do not silently revive rejected designs, stale skills or vendor capabilities as new requirements.","sourceRuleIds":["CX-PRINCIPLE-21","CX-PRINCIPLE-22","CX-PRINCIPLE-23","CX-PRINCIPLE-24","CX-PRINCIPLE-25","CX-OWNER-22"],"sourceCitations":[{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"},{"path":"conversation:current-user-AGENTS-and-parent-relayed-owner-mandates","lines":null,"sha256":null,"provenance":"Supplied current task instructions; not an inferred vendor feature or fabricated source-file citation."}],"declaredEnforcement":{"kind":"ADVISORY","boundary":"Source inventories cannot establish actual read completeness or whole-process execution.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"INV","paths":["docs/PRINCIPLES.md","docs/adr/0072-whole-product-integrity-conformance.md","scripts/hook-registry.mjs","scripts/source-scope-receipt.mjs"],"existingHandlerIds":[],"deliverySurface":"declared-nonhook-mechanism","missingImplementation":false,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["planning","mutation","completion","release","learning"],"actions":[],"priority":0}},
|
|
109
|
-
{"id":"P100","cohort":"approved-practical","label":"Provide exact learning rollback","actionRule":"Provide an executable, exact rollback for automatic learned-state changes before claiming that the complete improvement loop is safely reversible; the current operating contract explicitly says automatic exact learning rollback is unavailable.","sourceRuleIds":["CX-LEARNING-23","CX-PRINCIPLE-12"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"MISSING","boundary":"Current operating contract explicitly reports automatic exact learning rollback unavailable. Snapshots alone do not implement it.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-
|
|
109
|
+
{"id":"P100","cohort":"approved-practical","label":"Provide exact learning rollback","actionRule":"Provide an executable, exact rollback for automatic learned-state changes before claiming that the complete improvement loop is safely reversible; the current operating contract explicitly says automatic exact learning rollback is unavailable.","sourceRuleIds":["CX-LEARNING-23","CX-PRINCIPLE-12"],"sourceCitations":[{"path":"CONTRIBUTING.md","lines":[319,331],"sha256":"cbfc8b3f5d33531012fcf3b255d9efa7727e3ebccd67d0595baea5cfbf16a360"},{"path":"docs/PRINCIPLES.md","lines":[31,147],"sha256":"0787b73b20c4dc7fac9b3092009be4617dc2d1e2f6c125c9a7451d0fd5bd6d2f"}],"declaredEnforcement":{"kind":"MISSING","boundary":"Current operating contract explicitly reports automatic exact learning rollback unavailable. Snapshots alone do not implement it.","nativeHostStatus":{"Codex":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Claude":"NOT_CHECKED_FOR_COMPLETE_RULE_ON_CURRENT_INTEGRATION","Grok":"AUTH_ONLY_NO_NATIVE_HOOK_PROOF"}},"mechanismMapping":{"declaredMechanismId":"LRN","paths":["plugin/scripts/learn-capture.sh","plugin/scripts/learn-capture.mjs","plugin/scripts/lesson-gate.mjs","plugin/scripts/lesson-store.mjs","plugin/scripts/unprompted-runtime.mjs"],"existingHandlerIds":["learn-capture","learn-capture"],"deliverySurface":"existing-shared-handler","missingImplementation":true,"registrationRequested":false,"newHookRequired":"NOT_DETERMINED_BY_CATALOG"},"applicability":{"phases":["learning","recovery"],"actions":["rollback"],"priority":2}}
|
|
110
110
|
]
|
|
111
111
|
}
|
package/console/app.js
CHANGED
|
@@ -3453,7 +3453,7 @@ function bpParts(bp) {
|
|
|
3453
3453
|
'need the RuVector source. Nightly updates preserve whichever profile is selected.'),
|
|
3454
3454
|
|
|
3455
3455
|
// RNBC QA 2026-10-01: this used to say these switches were "deliberately not shown … nothing
|
|
3456
|
-
// enforces them yet" — while the Settings card rendered all of them and learn-capture
|
|
3456
|
+
// enforces them yet" — while the Settings card rendered all of them and learn-capture,
|
|
3457
3457
|
// the console's guarded remedy loop and SessionStart seeding each read one. A sentence about the
|
|
3458
3458
|
// page that the page itself contradicts is the failure this card exists to prevent.
|
|
3459
3459
|
el('p', { class: 'fineprint bp-more-settings' },
|
|
@@ -753,8 +753,8 @@ table.tb { width: 100%; border-collapse: collapse; font-size: var(--fs--1); min-
|
|
|
753
753
|
<tr><td class="cell-mono">PreToolUse<small>Bash</small></td><td class="cell-name">verify-interface.sh</td><td><span class="no">blocks</span></td><td>Refuses an ecosystem CLI subcommand whose <code>--help</code> you have not read in 24 h. Born from reporting AgentDB broken three times when the real defect was passing a query positionally instead of with <code>-q</code>.</td></tr>
|
|
754
754
|
<tr><td class="cell-mono">PreToolUse<small>Bash</small></td><td class="cell-name">design-wall.sh</td><td><span class="no">blocks</span></td><td>Refuses shipping or opening a visual surface with no fresh design grade. <b>Scoped to this repo</b> since issue #17, after a plain <code>git commit</code> in an unrelated project got blocked demanding someone else's ritual.</td></tr>
|
|
755
755
|
<tr><td class="cell-mono">PreToolUse · Stop</td><td class="cell-name">lesson-hooks.sh</td><td><span class="part">nudge</span></td><td>Surfaces your own recorded corrections at the moment they apply — writing code, changing the machine, asserting a fact, claiming done.</td></tr>
|
|
756
|
-
<tr><td class="cell-mono">PostToolUse</td><td class="cell-name">learn-capture.sh</td><td><span class="part">nudge</span></td><td>
|
|
757
|
-
<tr><td class="cell-mono">SessionEnd</td><td class="cell-name">
|
|
756
|
+
<tr><td class="cell-mono">PostToolUse</td><td class="cell-name">learn-capture.sh</td><td><span class="part">nudge</span></td><td>Opted-in only: writes one minimized step with ruflo memory store and reads it back. No queue.</td></tr>
|
|
757
|
+
<tr><td class="cell-mono">SessionEnd</td><td class="cell-name">session-snapshot</td><td><span class="part">nudge</span></td><td>Stores a checkpoint through ruflo and reads it back.</td></tr>
|
|
758
758
|
<tr><td class="cell-mono">Stop</td><td class="cell-name">continuation-gate.mjs</td><td><span class="part">nudge</span></td><td>Fires on <i>stopping</i> — the one thing no other gate can catch, because stopping is the absence of an action and every other gate needs a tool call to intercept.</td></tr>
|
|
759
759
|
</tbody>
|
|
760
760
|
</table>
|