@aria_asi/cli 0.2.40 → 0.2.41
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/bin/aria.js +236 -34
- package/dist/aria-connector/src/action-ledger-core.d.ts +387 -0
- package/dist/aria-connector/src/action-ledger-core.d.ts.map +1 -0
- package/dist/aria-connector/src/action-ledger-core.js +638 -0
- package/dist/aria-connector/src/action-ledger-core.js.map +1 -0
- package/dist/aria-connector/src/chat.d.ts.map +1 -1
- package/dist/aria-connector/src/chat.js +5 -6
- package/dist/aria-connector/src/chat.js.map +1 -1
- package/dist/aria-connector/src/codebase-scanner.d.ts +1 -1
- package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.d.ts +1 -0
- package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.js +152 -14
- package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +10 -0
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.js +276 -27
- package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -1
- package/dist/aria-connector/src/connectors/codex.d.ts +3 -1
- package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codex.js +1223 -41
- package/dist/aria-connector/src/connectors/codex.js.map +1 -1
- package/dist/aria-connector/src/connectors/cursor.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/cursor.js +7 -0
- package/dist/aria-connector/src/connectors/cursor.js.map +1 -1
- package/dist/aria-connector/src/connectors/governed-adapter.d.ts +30 -0
- package/dist/aria-connector/src/connectors/governed-adapter.d.ts.map +1 -0
- package/dist/aria-connector/src/connectors/governed-adapter.js +132 -0
- package/dist/aria-connector/src/connectors/governed-adapter.js.map +1 -0
- package/dist/aria-connector/src/connectors/opencode.d.ts +3 -1
- package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.js +18 -2
- package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/repo-guard.js +25 -14
- package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/runtime.js +92 -2
- package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
- package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/shell.js +123 -7
- package/dist/aria-connector/src/connectors/shell.js.map +1 -1
- package/dist/aria-connector/src/cross-cli-hive-binding.d.ts +63 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.d.ts.map +1 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.js +205 -0
- package/dist/aria-connector/src/cross-cli-hive-binding.js.map +1 -0
- package/dist/aria-connector/src/garden-control-plane.d.ts +6 -1
- package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
- package/dist/aria-connector/src/garden-control-plane.js +8 -2
- package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
- package/dist/aria-connector/src/governed-surface-runner.d.ts +189 -0
- package/dist/aria-connector/src/governed-surface-runner.d.ts.map +1 -0
- package/dist/aria-connector/src/governed-surface-runner.js +1022 -0
- package/dist/aria-connector/src/governed-surface-runner.js.map +1 -0
- package/dist/aria-connector/src/index.d.ts +10 -1
- package/dist/aria-connector/src/index.d.ts.map +1 -1
- package/dist/aria-connector/src/index.js +5 -0
- package/dist/aria-connector/src/index.js.map +1 -1
- package/dist/aria-connector/src/task-runner.d.ts +3 -0
- package/dist/aria-connector/src/task-runner.d.ts.map +1 -0
- package/dist/aria-connector/src/task-runner.js +3526 -0
- package/dist/aria-connector/src/task-runner.js.map +1 -0
- package/dist/aria-web/src/lib/codebase-scanner.d.ts +21 -2
- package/dist/aria-web/src/lib/codebase-scanner.d.ts.map +1 -1
- package/dist/aria-web/src/lib/codebase-scanner.js +59 -14
- package/dist/aria-web/src/lib/codebase-scanner.js.map +1 -1
- package/dist/assets/hooks/README.md +58 -0
- package/dist/assets/hooks/aria-agent-handoff.mjs +147 -2
- package/dist/assets/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/dist/assets/hooks/aria-architect-fallback.mjs +10 -2
- package/dist/assets/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/dist/assets/hooks/aria-first-class-coach.mjs +305 -10
- package/dist/assets/hooks/aria-harness-via-sdk.mjs +93 -16
- package/dist/assets/hooks/aria-import-resolution-gate.mjs +106 -20
- package/dist/assets/hooks/aria-outcome-record.mjs +56 -20
- package/dist/assets/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/dist/assets/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/dist/assets/hooks/aria-pre-text-gate.mjs +11 -2
- package/dist/assets/hooks/aria-pre-tool-gate.mjs +477 -81
- package/dist/assets/hooks/aria-pre-tool-use.mjs +70 -6
- package/dist/assets/hooks/aria-preprompt-consult.mjs +23 -4
- package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/dist/assets/hooks/aria-stop-gate.mjs +585 -76
- package/dist/assets/hooks/aria-trigger-autolearn.mjs +17 -3
- package/dist/assets/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/dist/assets/hooks/canonical-settings-block.json +172 -0
- package/dist/assets/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/dist/assets/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/dist/assets/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/dist/assets/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/dist/assets/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/dist/assets/hooks/codex-native/aria-stop.mjs +691 -0
- package/dist/assets/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/dist/assets/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/dist/assets/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/dist/assets/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/dist/assets/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/dist/assets/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/dist/assets/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/dist/assets/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/dist/assets/hooks/doctrine_trigger_map.json +236 -25
- package/dist/assets/hooks/doctrine_trigger_map.schema.json +46 -0
- package/dist/assets/hooks/install.sh +84 -0
- package/dist/assets/hooks/lib/action-ledger-core.mjs +269 -0
- package/dist/assets/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/dist/assets/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/dist/assets/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/dist/assets/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/dist/assets/hooks/lib/canonical-lenses.mjs +83 -6
- package/dist/assets/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/dist/assets/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/dist/assets/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/dist/assets/hooks/lib/domain-output-quality.mjs +132 -3
- package/dist/assets/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/dist/assets/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/dist/assets/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/assets/hooks/lib/first-class-coach.mjs +454 -19
- package/dist/assets/hooks/lib/gate-audit.mjs +12 -2
- package/dist/assets/hooks/lib/gate-loop-state.mjs +11 -2
- package/dist/assets/hooks/lib/goal-contract-quality.mjs +302 -0
- package/dist/assets/hooks/lib/hook-message-window.mjs +101 -9
- package/dist/assets/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/dist/assets/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/assets/hooks/lib/obligation-ledger.mjs +147 -0
- package/dist/assets/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/dist/assets/hooks/lib/owner-authorizations.mjs +269 -0
- package/dist/assets/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/dist/assets/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/dist/assets/hooks/lib/recovery-context.mjs +151 -0
- package/dist/assets/hooks/lib/recovery-template-loader.mjs +154 -0
- package/dist/assets/hooks/lib/self-doctrine-check.mjs +321 -0
- package/dist/assets/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/dist/assets/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/dist/assets/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/dist/assets/hooks/lib/surface-caught.mjs +94 -0
- package/dist/assets/hooks/recovery-templates/force-reauthor.md +67 -0
- package/dist/assets/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/dist/assets/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/dist/assets/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/dist/assets/hooks/test-tier-lens-labeling.mjs +14 -3
- package/dist/assets/opencode-plugins/harness-context/index.js +39 -6
- package/dist/assets/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
- package/dist/assets/opencode-plugins/harness-gate/index.js +36 -0
- package/dist/assets/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
- package/dist/assets/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
- package/dist/assets/opencode-plugins/harness-outcome/index.js +12 -0
- package/dist/assets/opencode-plugins/harness-stop/index.js +97 -2
- package/dist/assets/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
- package/dist/assets/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
- package/dist/assets/opencode-plugins/lib/coach.js +148 -0
- package/dist/runtime/coach-kernel.mjs +144 -7
- package/dist/runtime/codex-bridge.mjs +254 -8
- package/dist/runtime/discipline/doctrine_trigger_map.json +236 -25
- package/dist/runtime/discipline/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-chat/SKILL.md +84 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ops/SKILL.md +60 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
- package/dist/runtime/discipline/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
- package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
- package/dist/runtime/discipline/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/never-guess/SKILL.md +77 -0
- package/dist/runtime/discipline/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
- package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
- package/dist/runtime/discipline/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur/SKILL.md +506 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
- package/dist/runtime/discipline/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
- package/dist/runtime/discipline/skills/aria-cognition/tafakkur/SKILL.md +104 -0
- package/dist/runtime/doctrine_trigger_map.json +236 -25
- package/dist/runtime/embedded-public-key.mjs +27 -0
- package/dist/runtime/gated-ledger.mjs +41 -14
- package/dist/runtime/harness-daemon.mjs +85 -10
- package/dist/runtime/hive-wal-publisher.mjs +292 -0
- package/dist/runtime/hooks/README.md +58 -0
- package/dist/runtime/hooks/aria-agent-handoff.mjs +147 -2
- package/dist/runtime/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/dist/runtime/hooks/aria-architect-fallback.mjs +10 -2
- package/dist/runtime/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/dist/runtime/hooks/aria-first-class-coach.mjs +305 -10
- package/dist/runtime/hooks/aria-harness-via-sdk.mjs +93 -16
- package/dist/runtime/hooks/aria-import-resolution-gate.mjs +106 -20
- package/dist/runtime/hooks/aria-outcome-record.mjs +56 -20
- package/dist/runtime/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/dist/runtime/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/dist/runtime/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/dist/runtime/hooks/aria-pre-text-gate.mjs +11 -2
- package/dist/runtime/hooks/aria-pre-tool-gate.mjs +477 -81
- package/dist/runtime/hooks/aria-pre-tool-use.mjs +70 -6
- package/dist/runtime/hooks/aria-preprompt-consult.mjs +23 -4
- package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/dist/runtime/hooks/aria-stop-gate.mjs +585 -76
- package/dist/runtime/hooks/aria-trigger-autolearn.mjs +17 -3
- package/dist/runtime/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/dist/runtime/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/dist/runtime/hooks/canonical-settings-block.json +172 -0
- package/dist/runtime/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/dist/runtime/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/dist/runtime/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/dist/runtime/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/dist/runtime/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/dist/runtime/hooks/codex-native/aria-stop.mjs +691 -0
- package/dist/runtime/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/dist/runtime/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/dist/runtime/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/dist/runtime/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/dist/runtime/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/dist/runtime/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/dist/runtime/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/dist/runtime/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/dist/runtime/hooks/doctrine_trigger_map.json +236 -25
- package/dist/runtime/hooks/doctrine_trigger_map.schema.json +46 -0
- package/dist/runtime/hooks/install.sh +84 -0
- package/dist/runtime/hooks/lib/action-ledger-core.mjs +269 -0
- package/dist/runtime/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/dist/runtime/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/dist/runtime/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/dist/runtime/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/dist/runtime/hooks/lib/canonical-lenses.mjs +83 -6
- package/dist/runtime/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/dist/runtime/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/dist/runtime/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/dist/runtime/hooks/lib/domain-output-quality.mjs +132 -3
- package/dist/runtime/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/dist/runtime/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/dist/runtime/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/runtime/hooks/lib/first-class-coach.mjs +454 -19
- package/dist/runtime/hooks/lib/gate-audit.mjs +12 -2
- package/dist/runtime/hooks/lib/gate-loop-state.mjs +11 -2
- package/dist/runtime/hooks/lib/goal-contract-quality.mjs +302 -0
- package/dist/runtime/hooks/lib/hook-message-window.mjs +101 -9
- package/dist/runtime/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/dist/runtime/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/runtime/hooks/lib/obligation-ledger.mjs +147 -0
- package/dist/runtime/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/dist/runtime/hooks/lib/owner-authorizations.mjs +269 -0
- package/dist/runtime/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/dist/runtime/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/dist/runtime/hooks/lib/recovery-context.mjs +151 -0
- package/dist/runtime/hooks/lib/recovery-template-loader.mjs +154 -0
- package/dist/runtime/hooks/lib/self-doctrine-check.mjs +321 -0
- package/dist/runtime/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/dist/runtime/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/dist/runtime/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/dist/runtime/hooks/lib/surface-caught.mjs +94 -0
- package/dist/runtime/hooks/recovery-templates/force-reauthor.md +67 -0
- package/dist/runtime/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/dist/runtime/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/dist/runtime/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/dist/runtime/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/dist/runtime/hooks/test-tier-lens-labeling.mjs +14 -3
- package/dist/runtime/lib/evaluate-with-kernel.mjs +133 -0
- package/dist/runtime/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/dist/runtime/local-phase.mjs +10 -5
- package/dist/runtime/manifest.json +8 -8
- package/dist/runtime/packet-verifier.mjs +166 -0
- package/dist/runtime/provider-proxy.mjs +13 -0
- package/dist/runtime/quality-enforcer.mjs +40 -23
- package/dist/runtime/runtime-rails/registry.mjs +252 -0
- package/dist/runtime/sdk/BUNDLED.json +2 -2
- package/dist/runtime/sdk/index.d.ts +119 -4
- package/dist/runtime/sdk/index.js +138 -12
- package/dist/runtime/sdk/index.js.map +1 -1
- package/dist/runtime/service.mjs +8036 -764
- package/dist/runtime/sub-agent-enforcer.mjs +201 -0
- package/dist/runtime/task-project-ledger.mjs +5 -1
- package/dist/sdk/BUNDLED.json +2 -2
- package/dist/sdk/index.d.ts +119 -4
- package/dist/sdk/index.js +138 -12
- package/dist/sdk/index.js.map +1 -1
- package/hooks/README.md +58 -0
- package/hooks/aria-agent-handoff.mjs +147 -2
- package/hooks/aria-agent-ledger-merge.mjs +31 -7
- package/hooks/aria-architect-fallback.mjs +10 -2
- package/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
- package/hooks/aria-cognition-substrate-binding.mjs +84 -10
- package/hooks/aria-first-class-coach.mjs +305 -10
- package/hooks/aria-harness-via-sdk.mjs +93 -16
- package/hooks/aria-import-resolution-gate.mjs +106 -20
- package/hooks/aria-outcome-record.mjs +56 -20
- package/hooks/aria-pre-emit-autoload.mjs +1809 -0
- package/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
- package/hooks/aria-pre-emit-dryrun.mjs +22 -3
- package/hooks/aria-pre-text-gate.mjs +11 -2
- package/hooks/aria-pre-tool-gate.mjs +477 -81
- package/hooks/aria-pre-tool-use.mjs +70 -6
- package/hooks/aria-preprompt-consult.mjs +23 -4
- package/hooks/aria-repo-doctrine-gate.mjs +29 -3
- package/hooks/aria-stop-gate.mjs +585 -76
- package/hooks/aria-trigger-autolearn.mjs +17 -3
- package/hooks/aria-universal-turn-packet.mjs +1165 -0
- package/hooks/aria-userprompt-abandon-detect.mjs +9 -1
- package/hooks/canonical-settings-block.json +172 -0
- package/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
- package/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
- package/hooks/codex-native/aria-live-ticker.mjs +38 -0
- package/hooks/codex-native/aria-post-tool-use.mjs +236 -0
- package/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
- package/hooks/codex-native/aria-stop.mjs +691 -0
- package/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
- package/hooks/codex-native/atlas-session-context.mjs +121 -0
- package/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
- package/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
- package/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
- package/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
- package/hooks/codex-native/lib/runtime-client.mjs +3567 -0
- package/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
- package/hooks/doctrine_trigger_map.json +236 -25
- package/hooks/doctrine_trigger_map.schema.json +46 -0
- package/hooks/install.sh +84 -0
- package/hooks/lib/action-ledger-core.mjs +269 -0
- package/hooks/lib/aria-gate-ledger.mjs +143 -0
- package/hooks/lib/ast-stub-shape-detector.mjs +107 -0
- package/hooks/lib/atlas-dossier-client.mjs +151 -0
- package/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
- package/hooks/lib/canonical-lenses.mjs +83 -6
- package/hooks/lib/coach-intent-classifier.mjs +248 -0
- package/hooks/lib/cognitive-block-parser.mjs +111 -0
- package/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
- package/hooks/lib/domain-output-quality.mjs +132 -3
- package/hooks/lib/empty-catch-scanner.mjs +91 -0
- package/hooks/lib/end-phase-qa-autofire.mjs +426 -0
- package/hooks/lib/evaluate-with-kernel.mjs +133 -0
- package/hooks/lib/first-class-coach.mjs +454 -19
- package/hooks/lib/gate-audit.mjs +12 -2
- package/hooks/lib/gate-loop-state.mjs +11 -2
- package/hooks/lib/goal-contract-quality.mjs +302 -0
- package/hooks/lib/hook-message-window.mjs +101 -9
- package/hooks/lib/invocation-required-verifier.mjs +184 -0
- package/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/hooks/lib/obligation-ledger.mjs +147 -0
- package/hooks/lib/orchestration-manifest-extract.mjs +217 -0
- package/hooks/lib/owner-authorizations.mjs +269 -0
- package/hooks/lib/probe-discipline-scanner.mjs +142 -0
- package/hooks/lib/project-boundary-cognition.mjs +143 -0
- package/hooks/lib/recovery-context.mjs +151 -0
- package/hooks/lib/recovery-template-loader.mjs +154 -0
- package/hooks/lib/self-doctrine-check.mjs +321 -0
- package/hooks/lib/sensitive-shape-detector.mjs +64 -0
- package/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
- package/hooks/lib/stop-hook-protocol.mjs +166 -0
- package/hooks/lib/surface-caught.mjs +94 -0
- package/hooks/recovery-templates/force-reauthor.md +67 -0
- package/hooks/recovery-templates/handoff-recovery.md +25 -0
- package/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
- package/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
- package/hooks/test-aria-preturn-memory-gate.mjs +2 -2
- package/hooks/test-tier-lens-labeling.mjs +14 -3
- package/opencode-plugins/harness-context/index.js +39 -6
- package/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
- package/opencode-plugins/harness-gate/index.js +36 -0
- package/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
- package/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
- package/opencode-plugins/harness-outcome/index.js +12 -0
- package/opencode-plugins/harness-stop/index.js +97 -2
- package/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
- package/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
- package/opencode-plugins/lib/coach.js +148 -0
- package/package.json +71 -5
- package/runtime-src/coach-kernel.mjs +144 -7
- package/runtime-src/codex-bridge.mjs +254 -8
- package/runtime-src/embedded-public-key.mjs +27 -0
- package/runtime-src/gated-ledger.mjs +41 -14
- package/runtime-src/harness-daemon.mjs +85 -10
- package/runtime-src/hive-wal-publisher.mjs +292 -0
- package/runtime-src/lib/evaluate-with-kernel.mjs +133 -0
- package/runtime-src/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
- package/runtime-src/local-phase.mjs +10 -5
- package/runtime-src/packet-verifier.mjs +166 -0
- package/runtime-src/provider-proxy.mjs +13 -0
- package/runtime-src/quality-enforcer.mjs +40 -23
- package/runtime-src/runtime-rails/registry.mjs +252 -0
- package/runtime-src/service.mjs +8036 -764
- package/runtime-src/sub-agent-enforcer.mjs +201 -0
- package/scripts/aria-ledger-append.mjs +337 -0
- package/scripts/aria-task-cheap-worker-dispatch.mjs +234 -0
- package/scripts/audit-of-audit-prior-tasks.mjs +194 -0
- package/scripts/audit-of-audit-this-turn.mjs +116 -0
- package/scripts/bundle-sdk.mjs +31 -5
- package/scripts/check-cli-wrapper-provider-contract.mjs +160 -0
- package/scripts/check-client-compatibility.mjs +15 -5
- package/scripts/check-client-smoke.mjs +297 -0
- package/scripts/check-codex-orchestrator-adoption.mjs +150 -0
- package/scripts/check-glm-env-wired.mjs +131 -0
- package/scripts/check-hive-local-storage-contract.mjs +91 -0
- package/scripts/check-hook-mirror.mjs +150 -0
- package/scripts/check-install-sh-drift.mjs +152 -0
- package/scripts/check-kernel-sync.mjs +101 -0
- package/scripts/check-package-artifact.mjs +152 -0
- package/scripts/check-registry-mirror.mjs +71 -0
- package/scripts/drain-owner-airtable-sync-queue.mjs +287 -0
- package/scripts/export-owner-status-sheets.mjs +589 -0
- package/scripts/live-sidecar-receipt-canary.mjs +347 -0
- package/scripts/qiyas-tadabbur-model-matrix.mjs +970 -0
- package/scripts/quality-ab-live-provider.mjs +913 -0
- package/scripts/self-test-action-ledger-core.mjs +190 -0
- package/scripts/self-test-approval-receipt-binding.mjs +122 -0
- package/scripts/self-test-autofire-quality-output.mjs +110 -0
- package/scripts/self-test-claude-code-action-ledger.mjs +132 -0
- package/scripts/self-test-claude-code-mechanical-autofire-hive.mjs +138 -0
- package/scripts/self-test-claude-code-mechanical-autofire.mjs +234 -0
- package/scripts/self-test-codebase-awareness-atlas-delta.mjs +159 -0
- package/scripts/self-test-codebase-awareness-delta-ingest.mjs +179 -0
- package/scripts/self-test-codex-live-hook-parity.mjs +84 -0
- package/scripts/self-test-codex-native-action-ledger.mjs +167 -0
- package/scripts/self-test-codex-native-hook-json-contract.mjs +74 -0
- package/scripts/self-test-codex-orchestrator-continuity.mjs +113 -0
- package/scripts/self-test-codex-readable-recovery.mjs +94 -0
- package/scripts/self-test-codex-self-harness.mjs +538 -0
- package/scripts/self-test-compiled-workunit.mjs +214 -0
- package/scripts/self-test-continuation-output-smoke.mjs +101 -0
- package/scripts/self-test-cross-cli-fleet-ticker.mjs +85 -0
- package/scripts/self-test-cross-cli-hive-adoption.mjs +125 -0
- package/scripts/self-test-cross-cli-hive-learning.mjs +146 -0
- package/scripts/self-test-cross-phase-tool-failure.mjs +110 -0
- package/scripts/self-test-cross-surface-action-ledger.mjs +149 -0
- package/scripts/self-test-end-of-phase-qa-court.mjs +616 -0
- package/scripts/self-test-evaluate-with-kernel.mjs +111 -0
- package/scripts/self-test-first-class-output-delta-proof.mjs +307 -0
- package/scripts/self-test-goal-contract-output-qa.mjs +73 -0
- package/scripts/self-test-goal-contract.mjs +35 -0
- package/scripts/self-test-governed-adapters.mjs +105 -0
- package/scripts/self-test-governed-surface-runner.mjs +198 -0
- package/scripts/self-test-harness-gates.mjs +15 -12
- package/scripts/self-test-harness-ticker-sidecar.mjs +153 -0
- package/scripts/self-test-hive-org-kernel.mjs +233 -0
- package/scripts/self-test-hive-session-coordination.mjs +156 -0
- package/scripts/self-test-hive-wal-consumer.mjs +111 -0
- package/scripts/self-test-kernel-a3-a4-selection.mjs +179 -0
- package/scripts/self-test-ledger-append.mjs +175 -0
- package/scripts/self-test-live-codex-posttool-packet-smoke.mjs +111 -0
- package/scripts/self-test-live-codex-pretool-packet-smoke.mjs +101 -0
- package/scripts/self-test-live-codex-stop-qa-kernel-smoke.mjs +43 -0
- package/scripts/self-test-live-wrapper-substrate-inventory.mjs +149 -0
- package/scripts/self-test-local-main-sync-script.mjs +47 -0
- package/scripts/self-test-mechanical-autofire-resolver.mjs +296 -0
- package/scripts/self-test-no-consult-cognitive-skills-output.mjs +135 -0
- package/scripts/self-test-owner-airtable-sync-queue.mjs +196 -0
- package/scripts/self-test-owner-airtable-sync.mjs +181 -0
- package/scripts/self-test-owner-sheets-action-ledger.mjs +100 -0
- package/scripts/self-test-production-preflight.mjs +78 -0
- package/scripts/self-test-project-boundary-cognition.mjs +79 -0
- package/scripts/self-test-qa-exec-kernel.mjs +34 -0
- package/scripts/self-test-qa-recovery-learning-loop.mjs +113 -0
- package/scripts/self-test-qiyas-label-alignment.mjs +94 -0
- package/scripts/self-test-recovery-context.mjs +110 -0
- package/scripts/self-test-repo-guard.mjs +10 -0
- package/scripts/self-test-runtime-health-self-heal.mjs +161 -0
- package/scripts/self-test-runtime-postcondition.mjs +70 -0
- package/scripts/self-test-soul-precommit-hook.mjs +39 -0
- package/scripts/self-test-stop-gate-kernel-guards.mjs +185 -0
- package/scripts/self-test-stop-gate.mjs +128 -0
- package/scripts/self-test-substrate-kernel-execution-receipt.mjs +130 -0
- package/scripts/self-test-substrate-open-skill-floor.mjs +87 -0
- package/scripts/self-test-substrate-output-quality-eval.mjs +171 -0
- package/scripts/self-test-task-closeout-drift.mjs +97 -0
- package/scripts/self-test-task-project-ledger-readiness.mjs +43 -0
- package/scripts/self-test-task-runner-phase-consumer.mjs +134 -0
- package/scripts/self-test-task-worker-lane.mjs +256 -0
- package/scripts/self-test-turn-substrate-qa-kernel.mjs +188 -0
- package/scripts/self-test-universal-action-capture.mjs +153 -0
- package/scripts/self-test-universal-turn-packet-entrypoints.mjs +252 -0
- package/scripts/self-test-universal-turn-packet.mjs +320 -0
- package/scripts/session-quality-backfill.mjs +253 -0
- package/scripts/smoke-autofire-100-prompts.mjs +481 -0
- package/scripts/sync-local-main-on-task-complete.mjs +278 -0
- package/scripts/sync-owner-status-airtable.mjs +1158 -0
- package/scripts/validate-skill-prompts.mjs +12 -1
- package/scripts/verify-codex-native-mirror.mjs +262 -0
- package/skills/34-frameworks-unified/SKILL.md +42 -0
- package/skills/api-design/SKILL.md +123 -0
- package/skills/architecture-decision/SKILL.md +105 -0
- package/skills/aria-aristotle-cognitives/SKILL.md +128 -0
- package/skills/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/skills/aria-aristotle-post-phase/SKILL.md +116 -0
- package/skills/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/skills/aria-axioms-first-principles/SKILL.md +202 -0
- package/skills/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/skills/aria-axioms-first-principles/references/source-map.md +130 -0
- package/skills/aria-chat/SKILL.md +84 -0
- package/skills/aria-chat/scripts/aria-chat.sh +57 -0
- package/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
- package/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
- package/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
- package/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
- package/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
- package/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
- package/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
- package/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
- package/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
- package/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
- package/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
- package/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
- package/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
- package/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
- package/skills/aria-cognition/aria-chat/SKILL.md +84 -0
- package/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
- package/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
- package/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
- package/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
- package/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
- package/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
- package/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
- package/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
- package/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
- package/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
- package/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
- package/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
- package/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
- package/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
- package/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
- package/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
- package/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
- package/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
- package/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
- package/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
- package/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
- package/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
- package/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
- package/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
- package/skills/aria-cognition/aria-ops/SKILL.md +60 -0
- package/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
- package/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
- package/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
- package/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
- package/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
- package/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
- package/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
- package/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
- package/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
- package/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
- package/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
- package/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
- package/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
- package/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
- package/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
- package/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
- package/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
- package/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
- package/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
- package/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
- package/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
- package/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
- package/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
- package/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
- package/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
- package/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
- package/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
- package/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
- package/skills/aria-cognition/never-guess/SKILL.md +77 -0
- package/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
- package/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
- package/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
- package/skills/aria-cognition/tadabbur/SKILL.md +506 -0
- package/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
- package/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
- package/skills/aria-cognition/tafakkur/SKILL.md +104 -0
- package/skills/aria-cognition-autofire/SKILL.md +109 -0
- package/skills/aria-cognition-batch/SKILL.md +264 -0
- package/skills/aria-conversational-doctrine-discipline/SKILL.md +125 -0
- package/skills/aria-essence/SKILL.md +81 -0
- package/skills/aria-essence/references/domain-matrix.md +80 -0
- package/skills/aria-essence/references/evolution-loop.md +30 -0
- package/skills/aria-essence/references/readable-cognition.md +27 -0
- package/skills/aria-first-class-operating-contract/SKILL.md +104 -0
- package/skills/aria-forge-guardrails/SKILL.md +53 -0
- package/skills/aria-forge-guardrails/references/checklist.md +31 -0
- package/skills/aria-harness-deploy/SKILL.md +145 -0
- package/skills/aria-harness-no-stripping/SKILL.md +135 -0
- package/skills/aria-harness-onboarding/SKILL.md +130 -0
- package/skills/aria-harness-output-discipline/SKILL.md +120 -0
- package/skills/aria-harness-substrate-binding/SKILL.md +139 -0
- package/skills/aria-http-harness-client/SKILL.md +85 -0
- package/skills/aria-http-harness-client/scripts/smoke.mjs +47 -0
- package/skills/aria-k8s-deploy/SKILL.md +174 -0
- package/skills/aria-k8s-deploy/agents/openai.yaml +3 -0
- package/skills/aria-ladduniframe/SKILL.md +60 -0
- package/skills/aria-ledger-fleet-execution/SKILL.md +126 -0
- package/skills/aria-live-ops/SKILL.md +54 -0
- package/skills/aria-mac-ssh-ops/SKILL.md +100 -0
- package/skills/aria-memory-index/SKILL.md +42 -0
- package/skills/aria-noor-cognitives/SKILL.md +120 -0
- package/skills/aria-ops/SKILL.md +60 -0
- package/skills/aria-ops/references/live-endpoints.md +59 -0
- package/skills/aria-quality-audit/SKILL.md +133 -0
- package/skills/aria-reasoning/SKILL.md +67 -0
- package/skills/aria-reasoning/references/core-principles.md +42 -0
- package/skills/aria-repo-doctrine/SKILL.md +57 -0
- package/skills/aria-soul-principles/SKILL.md +42 -0
- package/skills/aria-task-codex-executor/SKILL.md +86 -0
- package/skills/aristotle-engine/SKILL.md +42 -0
- package/skills/ci-cd-pipeline/SKILL.md +116 -0
- package/skills/code-review/SKILL.md +131 -0
- package/skills/cross-domain-24/SKILL.md +42 -0
- package/skills/database-design/SKILL.md +124 -0
- package/skills/deepsoul-emotional/SKILL.md +42 -0
- package/skills/deno-kv-raft-pubsub/SKILL.md +561 -0
- package/skills/deno-kv-raft-pubsub/reference/maelstrom-integration.md +393 -0
- package/skills/deno-kv-raft-pubsub/reference/pubsub-api.md +376 -0
- package/skills/deno-kv-raft-pubsub/reference/raft-spec.md +402 -0
- package/skills/deno-kv-raft-pubsub/reference/state-machine.md +182 -0
- package/skills/error-handling/SKILL.md +159 -0
- package/skills/firecrawl/SKILL.md +165 -0
- package/skills/firecrawl/rules/install.md +82 -0
- package/skills/firecrawl/rules/security.md +26 -0
- package/skills/firecrawl-agent/SKILL.md +86 -0
- package/skills/firecrawl-build-interact/SKILL.md +96 -0
- package/skills/firecrawl-build-onboarding/SKILL.md +131 -0
- package/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
- package/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
- package/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
- package/skills/firecrawl-build-scrape/SKILL.md +97 -0
- package/skills/firecrawl-build-search/SKILL.md +97 -0
- package/skills/firecrawl-clone/SKILL.md +419 -0
- package/skills/firecrawl-crawl/SKILL.md +87 -0
- package/skills/firecrawl-download/SKILL.md +98 -0
- package/skills/firecrawl-interact/SKILL.md +112 -0
- package/skills/firecrawl-map/SKILL.md +79 -0
- package/skills/firecrawl-scrape/SKILL.md +97 -0
- package/skills/firecrawl-search/SKILL.md +88 -0
- package/skills/fitrah-guard/SKILL.md +78 -0
- package/skills/forge-quality-rules/SKILL.md +61 -0
- package/skills/ghazali-8lens/SKILL.md +56 -0
- package/skills/ijtihad-novel/SKILL.md +42 -0
- package/skills/ilham-intuition/SKILL.md +42 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +374 -0
- package/skills/imagegen/agents/openai.yaml +6 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +242 -0
- package/skills/imagegen/references/codex-network.md +33 -0
- package/skills/imagegen/references/image-api.md +90 -0
- package/skills/imagegen/references/prompting.md +118 -0
- package/skills/imagegen/references/sample-prompts.md +433 -0
- package/skills/imagegen/scripts/image_gen.py +995 -0
- package/skills/imagegen/scripts/remove_chroma_key.py +440 -0
- package/skills/istiqra-induction/SKILL.md +44 -0
- package/skills/ladunni-22/SKILL.md +53 -0
- package/skills/mizan/SKILL.md +90 -0
- package/skills/nadia/SKILL.md +56 -0
- package/skills/nadia-psi/SKILL.md +56 -0
- package/skills/never-guess/SKILL.md +75 -0
- package/skills/noor-recognition/SKILL.md +45 -0
- package/skills/observability/SKILL.md +133 -0
- package/skills/openai-docs/LICENSE.txt +201 -0
- package/skills/openai-docs/SKILL.md +100 -0
- package/skills/openai-docs/agents/openai.yaml +14 -0
- package/skills/openai-docs/assets/openai-small.svg +3 -0
- package/skills/openai-docs/assets/openai.png +0 -0
- package/skills/openai-docs/references/latest-model.md +37 -0
- package/skills/openai-docs/references/prompting-guide.md +244 -0
- package/skills/openai-docs/references/upgrade-guide.md +181 -0
- package/skills/openai-docs/scripts/resolve-latest-model-info.js +147 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +85 -0
- package/skills/pdf/agents/openai.yaml +5 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +165 -0
- package/skills/playwright/agents/openai.yaml +6 -0
- package/skills/playwright/assets/playwright-small.svg +3 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/plugin-creator/SKILL.md +178 -0
- package/skills/plugin-creator/agents/openai.yaml +6 -0
- package/skills/plugin-creator/assets/plugin-creator-small.svg +3 -0
- package/skills/plugin-creator/assets/plugin-creator.png +0 -0
- package/skills/plugin-creator/references/plugin-json-spec.md +170 -0
- package/skills/plugin-creator/scripts/create_basic_plugin.py +301 -0
- package/skills/predictor/SKILL.md +43 -0
- package/skills/qiyas-analogy/SKILL.md +204 -0
- package/skills/refactoring/SKILL.md +137 -0
- package/skills/ruh-basis/SKILL.md +42 -0
- package/skills/security-review/SKILL.md +129 -0
- package/skills/skill-creator/SKILL.md +434 -0
- package/skills/skill-creator/agents/openai.yaml +5 -0
- package/skills/skill-creator/assets/skill-creator-small.svg +3 -0
- package/skills/skill-creator/assets/skill-creator.png +0 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/references/openai_yaml.md +49 -0
- package/skills/skill-creator/scripts/generate_openai_yaml.py +226 -0
- package/skills/skill-creator/scripts/init_skill.py +400 -0
- package/skills/skill-creator/scripts/quick_validate.py +101 -0
- package/skills/skill-installer/LICENSE.txt +202 -0
- package/skills/skill-installer/SKILL.md +76 -0
- package/skills/skill-installer/agents/openai.yaml +5 -0
- package/skills/skill-installer/assets/skill-installer-small.svg +3 -0
- package/skills/skill-installer/assets/skill-installer.png +0 -0
- package/skills/skill-installer/scripts/github_utils.py +21 -0
- package/skills/skill-installer/scripts/install-skill-from-github.py +308 -0
- package/skills/skill-installer/scripts/list-skills.py +107 -0
- package/skills/skills-and-hooks-reference/SKILL.md +196 -0
- package/skills/soul-domains/SKILL.md +43 -0
- package/skills/tadabbur/SKILL.md +232 -0
- package/skills/tadabbur-ops/SKILL.md +42 -0
- package/skills/tafakkur/SKILL.md +104 -0
- package/skills/testing-strategy/SKILL.md +122 -0
- package/src/action-ledger-core.ts +1054 -0
- package/src/chat.ts +5 -6
- package/src/codebase-scanner.ts +2 -0
- package/src/connectors/claude-code.ts +149 -12
- package/src/connectors/codebase-awareness.ts +325 -25
- package/src/connectors/codex.ts +1225 -41
- package/src/connectors/cursor.ts +8 -0
- package/src/connectors/governed-adapter.ts +174 -0
- package/src/connectors/opencode.ts +18 -2
- package/src/connectors/repo-guard.ts +24 -12
- package/src/connectors/runtime.ts +99 -2
- package/src/connectors/shell.ts +125 -7
- package/src/cross-cli-hive-binding.ts +290 -0
- package/src/garden-control-plane.ts +24 -1
- package/src/governed-surface-runner.ts +1227 -0
- package/src/index.ts +104 -1
- package/src/task-runner.ts +3794 -0
- package/dist/aria-connector/src/install-hooks.d.ts +0 -18
- package/dist/aria-connector/src/install-hooks.d.ts.map +0 -1
- package/dist/aria-connector/src/install-hooks.js +0 -224
- package/dist/aria-connector/src/install-hooks.js.map +0 -1
- package/dist/aria-connector/src/onboarding-wizard.d.ts +0 -5
- package/dist/aria-connector/src/onboarding-wizard.d.ts.map +0 -1
- package/dist/aria-connector/src/onboarding-wizard.js +0 -188
- package/dist/aria-connector/src/onboarding-wizard.js.map +0 -1
- package/dist/cli-0.2.38.tgz +0 -0
- package/dist/install.sh +0 -13
- package/src/__tests__/anthropic-oauth.test.ts +0 -186
- package/src/__tests__/auth-commands.test.ts +0 -132
- package/src/__tests__/owner-login.test.ts +0 -311
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// doctrine-self-check-file: preferred over|optional|fallback layer naming-the-pattern subject-of-rung — the lib documents Claude Code's external Stop hook protocol shape (which has optional fields per Claude Code spec, NOT Aria doctrine). All "optional" mentions are quoting Claude Code's protocol specification verbatim, not asserting Aria policy preferences.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* stop-hook-protocol.mjs — M9.DRIFT.10t Stop hook output validator + emitter.
|
|
5
|
+
*
|
|
6
|
+
* Closes Bug 3 the operator's local agent reported 2026-05-08:
|
|
7
|
+
* "Stop hook error: Hook JSON output validation failed —
|
|
8
|
+
* (root): Invalid input."
|
|
9
|
+
*
|
|
10
|
+
* Claude Code's runtime validates each hook's stdout JSON against a
|
|
11
|
+
* canonical schema and rejects at the root level when extra keys
|
|
12
|
+
* appear OR when hook-class-specific keys (e.g., hookSpecificOutput
|
|
13
|
+
* which is SessionStart-only) appear at the wrong hook event.
|
|
14
|
+
*
|
|
15
|
+
* STOP HOOK CANONICAL OUTPUT SHAPE (per Claude Code hook docs):
|
|
16
|
+
*
|
|
17
|
+
* stdout valid forms:
|
|
18
|
+
* 1. empty -> allow
|
|
19
|
+
* 2. JSON {
|
|
20
|
+
* decision?: "block" | "approve", // optional; absent = allow
|
|
21
|
+
* reason?: string, // required when decision === "block"
|
|
22
|
+
* continue?: boolean, // optional; controls whether processing continues
|
|
23
|
+
* stopReason?: string, // optional; companion to continue
|
|
24
|
+
* suppressOutput?: boolean // optional
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* exit codes:
|
|
28
|
+
* 0 with empty stdout -> allow
|
|
29
|
+
* 0 with valid JSON -> apply decision
|
|
30
|
+
* 2 with stderr -> block with stderr as reason (legacy)
|
|
31
|
+
*
|
|
32
|
+
* ANY other root key in stdout JSON -> "(root): Invalid input"
|
|
33
|
+
* hookSpecificOutput at root -> SessionStart-only; rejected for Stop
|
|
34
|
+
*
|
|
35
|
+
* Two-part fix in M9.DRIFT.10t:
|
|
36
|
+
* Part A: this lib — validateStopHookOutput + emitStopHookDecision
|
|
37
|
+
* Part B: update the two confirmed offenders in repo siblings to
|
|
38
|
+
* use this lib instead of raw console.log + JSON.stringify
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
const ALLOWED_ROOT_KEYS = Object.freeze([
|
|
42
|
+
'decision',
|
|
43
|
+
'reason',
|
|
44
|
+
'continue',
|
|
45
|
+
'stopReason',
|
|
46
|
+
'suppressOutput',
|
|
47
|
+
]);
|
|
48
|
+
|
|
49
|
+
const ALLOWED_DECISIONS = Object.freeze(['block', 'approve']);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Validate a candidate Stop hook stdout payload.
|
|
53
|
+
*
|
|
54
|
+
* @param {object} obj the payload that would be written to stdout
|
|
55
|
+
* @returns {{ ok: boolean, errors: string[] }}
|
|
56
|
+
*/
|
|
57
|
+
export function validateStopHookOutput(obj) {
|
|
58
|
+
const errors = [];
|
|
59
|
+
if (obj === null || obj === undefined) {
|
|
60
|
+
return { ok: true, errors }; // empty stdout = allow
|
|
61
|
+
}
|
|
62
|
+
if (typeof obj !== 'object' || Array.isArray(obj)) {
|
|
63
|
+
errors.push(`stdout payload must be a non-array object or null; got ${Array.isArray(obj) ? 'array' : typeof obj}`);
|
|
64
|
+
return { ok: false, errors };
|
|
65
|
+
}
|
|
66
|
+
// Reject extra root keys.
|
|
67
|
+
for (const key of Object.keys(obj)) {
|
|
68
|
+
if (!ALLOWED_ROOT_KEYS.includes(key)) {
|
|
69
|
+
errors.push(
|
|
70
|
+
`extra root key "${key}" — Claude Code Stop hook protocol allows only: ${ALLOWED_ROOT_KEYS.join(', ')}. ` +
|
|
71
|
+
`Embed this data in the "reason" string OR write to disk via recovery-context.mjs.`,
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// decision enum check.
|
|
76
|
+
if ('decision' in obj && !ALLOWED_DECISIONS.includes(obj.decision)) {
|
|
77
|
+
errors.push(
|
|
78
|
+
`decision="${obj.decision}" not in allowed enum: ${ALLOWED_DECISIONS.join(', ')}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
// reason required when decision === 'block'.
|
|
82
|
+
if (obj.decision === 'block') {
|
|
83
|
+
if (typeof obj.reason !== 'string' || obj.reason.length === 0) {
|
|
84
|
+
errors.push('decision="block" requires a non-empty reason string');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// type checks on optional fields.
|
|
88
|
+
if ('continue' in obj && typeof obj.continue !== 'boolean') {
|
|
89
|
+
errors.push(`continue must be boolean; got ${typeof obj.continue}`);
|
|
90
|
+
}
|
|
91
|
+
if ('stopReason' in obj && typeof obj.stopReason !== 'string') {
|
|
92
|
+
errors.push(`stopReason must be string; got ${typeof obj.stopReason}`);
|
|
93
|
+
}
|
|
94
|
+
if ('suppressOutput' in obj && typeof obj.suppressOutput !== 'boolean') {
|
|
95
|
+
errors.push(`suppressOutput must be boolean; got ${typeof obj.suppressOutput}`);
|
|
96
|
+
}
|
|
97
|
+
return { ok: errors.length === 0, errors };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Emit a Stop hook decision to stdout, validated against the protocol.
|
|
102
|
+
*
|
|
103
|
+
* Default behavior (no opts): on valid -> writes JSON to process.stdout
|
|
104
|
+
* + exits 0; on invalid -> writes the violation list to process.stderr
|
|
105
|
+
* + exits 2 (legacy block path; safer than emitting invalid JSON which
|
|
106
|
+
* causes "(root): Invalid input" rejection).
|
|
107
|
+
*
|
|
108
|
+
* Test mode: pass opts.stdout / opts.stderr / opts.exit as injected
|
|
109
|
+
* functions to capture output without touching process.* globals.
|
|
110
|
+
*
|
|
111
|
+
* @param {object|null} obj Stop hook payload (or null for empty allow)
|
|
112
|
+
* @param {object} [opts]
|
|
113
|
+
* @param {(s: string) => void} [opts.stdout] injected stdout writer
|
|
114
|
+
* @param {(s: string) => void} [opts.stderr] injected stderr writer
|
|
115
|
+
* @param {(code: number) => void} [opts.exit] injected exit fn
|
|
116
|
+
* @returns {{ emitted: boolean, exitCode: number, errors: string[] }}
|
|
117
|
+
*/
|
|
118
|
+
export function emitStopHookDecision(obj, opts = {}) {
|
|
119
|
+
const stdout = opts.stdout || ((s) => process.stdout.write(s));
|
|
120
|
+
const stderr = opts.stderr || ((s) => process.stderr.write(s));
|
|
121
|
+
const exit = opts.exit || ((code) => process.exit(code));
|
|
122
|
+
|
|
123
|
+
// Empty payload = allow.
|
|
124
|
+
if (obj === null || obj === undefined) {
|
|
125
|
+
exit(0);
|
|
126
|
+
return { emitted: false, exitCode: 0, errors: [] };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const { ok, errors } = validateStopHookOutput(obj);
|
|
130
|
+
if (!ok) {
|
|
131
|
+
stderr(
|
|
132
|
+
'[stop-hook-protocol] REFUSED to emit invalid Stop hook JSON. ' +
|
|
133
|
+
`${errors.length} violation(s):\n` +
|
|
134
|
+
errors.map((e) => ` - ${e}`).join('\n') +
|
|
135
|
+
'\n',
|
|
136
|
+
);
|
|
137
|
+
// Exit 2 as a legacy block (safer than emitting invalid JSON which
|
|
138
|
+
// Claude Code rejects with "(root): Invalid input"). The stderr
|
|
139
|
+
// payload reaches the model as the block reason.
|
|
140
|
+
exit(2);
|
|
141
|
+
return { emitted: false, exitCode: 2, errors };
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
stdout(JSON.stringify(obj) + '\n');
|
|
145
|
+
exit(0);
|
|
146
|
+
return { emitted: true, exitCode: 0, errors: [] };
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Helpers for building canonical Stop hook payloads.
|
|
151
|
+
*/
|
|
152
|
+
export function buildBlockDecision(reason) {
|
|
153
|
+
if (typeof reason !== 'string' || reason.length === 0) {
|
|
154
|
+
throw new Error('buildBlockDecision: reason must be a non-empty string');
|
|
155
|
+
}
|
|
156
|
+
return { decision: 'block', reason };
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export function buildApproveDecision(reason) {
|
|
160
|
+
const out = { decision: 'approve' };
|
|
161
|
+
if (typeof reason === 'string' && reason.length > 0) out.reason = reason;
|
|
162
|
+
return out;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export const STOP_HOOK_PROTOCOL_ALLOWED_ROOT_KEYS = ALLOWED_ROOT_KEYS;
|
|
166
|
+
export const STOP_HOOK_PROTOCOL_ALLOWED_DECISIONS = ALLOWED_DECISIONS;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* surface-caught.mjs — shared stderr-surface helper for hook catch blocks.
|
|
4
|
+
*
|
|
5
|
+
* Phase 0 audit Cluster H finding M0.H.3 (CRITICAL): the hook stack had
|
|
6
|
+
* 86+ empty `} catch {}` blocks — code that ENFORCES the doctrine
|
|
7
|
+
* `feedback_no_graceful_degradation.md` (the FIRST entry in the
|
|
8
|
+
* doctrine_trigger_map) while violating it itself 86 times. The enforcer
|
|
9
|
+
* didn't live by its own law.
|
|
10
|
+
*
|
|
11
|
+
* This helper provides a single, consistent surface for caught errors.
|
|
12
|
+
* Each call site replaces an empty catch with a labeled stderr line so
|
|
13
|
+
* operators can grep `[hook:context] op failed:` to audit hook-internal
|
|
14
|
+
* failures without parsing every per-hook log file.
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* } catch (err) { surfaceCaught('aria-stop-gate', 'mizan-receipt-load', err); }
|
|
18
|
+
*
|
|
19
|
+
* The third arg is the actual caught error — string or Error. If it's
|
|
20
|
+
* an Error instance, the message is used; otherwise String(err).
|
|
21
|
+
*
|
|
22
|
+
* Doctrine bind: feedback_no_graceful_degradation.md +
|
|
23
|
+
* axiom_runtime_rule.admit_ignorance — surface failures, do not silently
|
|
24
|
+
* swallow.
|
|
25
|
+
*
|
|
26
|
+
* Mirror: this file MUST be byte-identical between
|
|
27
|
+
* ops/claude-hooks/lib/surface-caught.mjs
|
|
28
|
+
* packages/aria-connector/hooks/lib/surface-caught.mjs
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
// M0.SELFREVIEW.5 — rate limit per (hookName, context) pair.
|
|
32
|
+
// Under cascading failure (e.g., DB unavailable, every probe fails)
|
|
33
|
+
// stderr volume could flood and cause container log backpressure.
|
|
34
|
+
// Cap each (hook, context) at RATE_LIMIT_PER_SECOND emissions per
|
|
35
|
+
// process; surplus drops with a counter. Next emit after the window
|
|
36
|
+
// resets includes a "...(suppressed N similar)" suffix so operator
|
|
37
|
+
// audit doesn't lose the count.
|
|
38
|
+
const RATE_LIMIT_PER_SECOND = parseInt(process.env.ARIA_SURFACE_CAUGHT_RATE_LIMIT || '', 10) || 20;
|
|
39
|
+
const _buckets = new Map(); // key="hook:context" -> { windowStart, count, suppressed }
|
|
40
|
+
|
|
41
|
+
function rateGate(key) {
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
let b = _buckets.get(key);
|
|
44
|
+
if (!b) {
|
|
45
|
+
b = { windowStart: now, count: 0, suppressed: 0 };
|
|
46
|
+
_buckets.set(key, b);
|
|
47
|
+
}
|
|
48
|
+
if (now - b.windowStart >= 1000) {
|
|
49
|
+
// Window rolled — return previously-suppressed count so caller can append it.
|
|
50
|
+
const prevSuppressed = b.suppressed;
|
|
51
|
+
b.windowStart = now;
|
|
52
|
+
b.count = 0;
|
|
53
|
+
b.suppressed = 0;
|
|
54
|
+
b.count++;
|
|
55
|
+
return { allow: true, suppressedSinceLast: prevSuppressed };
|
|
56
|
+
}
|
|
57
|
+
b.count++;
|
|
58
|
+
if (b.count > RATE_LIMIT_PER_SECOND) {
|
|
59
|
+
b.suppressed++;
|
|
60
|
+
return { allow: false, suppressedSinceLast: 0 };
|
|
61
|
+
}
|
|
62
|
+
return { allow: true, suppressedSinceLast: 0 };
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Write a labeled error surface line to stderr.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} hookName - the hook file's short label (e.g. 'aria-stop-gate')
|
|
69
|
+
* @param {string} context - the operation that failed (e.g. 'mizan-receipt-load')
|
|
70
|
+
* @param {unknown} err - the caught value
|
|
71
|
+
*/
|
|
72
|
+
export function surfaceCaught(hookName, context, err) {
|
|
73
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
74
|
+
const key = `${hookName}:${context}`;
|
|
75
|
+
const gate = rateGate(key);
|
|
76
|
+
if (!gate.allow) return; // suppressed; counter increments inside rateGate
|
|
77
|
+
const suppressedSuffix = gate.suppressedSinceLast > 0
|
|
78
|
+
? ` (suppressed ${gate.suppressedSinceLast} similar in prior window)`
|
|
79
|
+
: '';
|
|
80
|
+
try {
|
|
81
|
+
process.stderr.write(`[${hookName}:${context}] caught: ${msg}${suppressedSuffix}\n`);
|
|
82
|
+
} catch (writeErr) {
|
|
83
|
+
// Stderr write itself failed — last-resort console fallback. If even
|
|
84
|
+
// that fails (truly broken process), there is nowhere left to surface
|
|
85
|
+
// and we cannot do better. This is the only documented silent-by-design
|
|
86
|
+
// case in the helper itself.
|
|
87
|
+
// silent-by-design: stderr unavailable means the surface itself broke; nothing more to do
|
|
88
|
+
try { console.error(`[${hookName}:${context}] caught:`, msg); } catch (consoleErr) {
|
|
89
|
+
// silent-by-design: console also unavailable; truly broken process
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export default { surfaceCaught };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{{!-- force-reauthor.md — recovery contract template
|
|
2
|
+
|
|
3
|
+
Phase 0 audit Tier D Meta-X5 + cluster H M0.H.X11: extracted from
|
|
4
|
+
ops/claude-hooks/aria-stop-gate.mjs:buildForceReauthorReason() (was: 70-line
|
|
5
|
+
hardcoded teaching template baked in source). Operators can now edit the
|
|
6
|
+
teaching prose without code change + redeploy + npm publish.
|
|
7
|
+
|
|
8
|
+
Hot-reload: hook reads this file's mtime per call; if changed since last
|
|
9
|
+
read, re-read. Allows operator to update teaching with immediate effect.
|
|
10
|
+
|
|
11
|
+
Variables (substituted via simple {{var}} mustache-style replacement):
|
|
12
|
+
- {{source}} decision source (e.g., 'stop/lens-missing')
|
|
13
|
+
- {{reason}} one-line failure reason
|
|
14
|
+
- {{trigger_lines}} formatted bullet list of doctrine triggers fired
|
|
15
|
+
- {{violations_section}} formatted violations (or empty)
|
|
16
|
+
- {{rewritten_section}} mizan rewrite seed (or empty)
|
|
17
|
+
- {{recipe_addendum}} extra recipe text (or empty)
|
|
18
|
+
- {{required_lenses}} integer count (default 8)
|
|
19
|
+
- {{lens_count}} observed lens count
|
|
20
|
+
--}}
|
|
21
|
+
=== ARIA FORCE_REAUTHOR ===
|
|
22
|
+
source: {{source}}
|
|
23
|
+
reason: {{reason}}
|
|
24
|
+
|
|
25
|
+
This is not a terminal error. It is a forced redo instruction for the next model draft.
|
|
26
|
+
Do not emit the blocked text. Re-author it so the model learns the mechanism it violated.
|
|
27
|
+
|
|
28
|
+
TEACHING:
|
|
29
|
+
- Gates must force cognition and quality, not merely throw, warn, or stop.
|
|
30
|
+
- The redo must change the answer shape: name the failed mechanism, cite real evidence, and remove the drift pattern.
|
|
31
|
+
- Do not bypass by disabling tools, shortening runtime, asking the user to resolve memory-backed ambiguity, or giving an apology loop.
|
|
32
|
+
|
|
33
|
+
{{trigger_lines}}{{violations_section}}{{rewritten_section}}{{recipe_addendum}}
|
|
34
|
+
|
|
35
|
+
Recovery contract:
|
|
36
|
+
1. Do not retry the same blocked text unchanged.
|
|
37
|
+
2. Apply the teaching above to the next draft before re-emitting.
|
|
38
|
+
3. Re-test by submitting the revised output through this same gate.
|
|
39
|
+
4. If the blocker is stale state, name the stale state and clear or repair it before retrying.
|
|
40
|
+
|
|
41
|
+
REQUIRED REDO SHAPE:
|
|
42
|
+
1. One sentence: the failed mechanism, not an apology.
|
|
43
|
+
2. Evidence checked: file/line, command output, endpoint response, or explicit "unverified".
|
|
44
|
+
3. <cognition> with {{required_lenses}} substantive lenses. Observed: {{lens_count}}/{{required_lenses}}.
|
|
45
|
+
4. <applied_cognition> with decision_delta, dominant_domain, binds_to, expected_predicate, and artifact_change.
|
|
46
|
+
5. Corrected action/claim with no bypass, no downgraded path, and no fake proof.
|
|
47
|
+
6. If work remains, state the exact next real action or tracked task. No verbal flag-and-move.
|
|
48
|
+
|
|
49
|
+
COGNITION TEMPLATE:
|
|
50
|
+
<cognition>
|
|
51
|
+
truth: <verified facts and exact substrate>
|
|
52
|
+
harm: <what goes wrong if this is false>
|
|
53
|
+
trust: <how this honors Hamza directives and saved memory>
|
|
54
|
+
power: <why this uses capability responsibly, not convenience>
|
|
55
|
+
reflection: <mechanism failure and correction>
|
|
56
|
+
context: <relevant repo/runtime state>
|
|
57
|
+
impact: <expected next effect>
|
|
58
|
+
beauty: <simplest durable form>
|
|
59
|
+
</cognition>
|
|
60
|
+
<applied_cognition>
|
|
61
|
+
decision_delta: <what changed because cognition ran; not none>
|
|
62
|
+
dominant_domain: <engineering_quality | trust | operations | security | product | ...>
|
|
63
|
+
binds_to: <the exact answer, tool call, file mutation, deploy, review, or decision>
|
|
64
|
+
expected_predicate: <observable numeric, boolean, state-string, command result, endpoint result, or explicit unverified boundary>
|
|
65
|
+
artifact_change: <semantic effect on the artifact/output, not a task restatement>
|
|
66
|
+
</applied_cognition>
|
|
67
|
+
=== END FORCE_REAUTHOR ===
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{{!-- handoff-recovery.md — post-compact continuation handoff template
|
|
2
|
+
|
|
3
|
+
Phase 0 audit Tier D Meta-X5 + cluster H M0.H.X11: extracted from
|
|
4
|
+
ops/claude-hooks/aria-stop-gate.mjs:formatHandoffRecovery() (was: hardcoded
|
|
5
|
+
in source). Operator can edit the recovery contract without redeploy.
|
|
6
|
+
|
|
7
|
+
Variables:
|
|
8
|
+
- {{missing_fields}} comma-separated list of missing handoff fields,
|
|
9
|
+
or '(none)' when all present (this template only
|
|
10
|
+
renders when at least one field is missing —
|
|
11
|
+
renderer handles the empty case via short-circuit)
|
|
12
|
+
--}}
|
|
13
|
+
=== ARIA LOCAL OUTPUT BLOCK ===
|
|
14
|
+
|
|
15
|
+
post-compact continuation handoff malformed: missing fields: {{missing_fields}}
|
|
16
|
+
|
|
17
|
+
Recovery contract:
|
|
18
|
+
1. Do not retry the same blocked text.
|
|
19
|
+
2. Rewrite the output using this exact shape:
|
|
20
|
+
post_compact_continuation
|
|
21
|
+
current objective: <one sentence of the still-active task>
|
|
22
|
+
known blockers: <specific blockers, or "none verified" if truly none>
|
|
23
|
+
next executable step: <single command/edit/read/action the next agent should run first>
|
|
24
|
+
what not to touch: <unrelated dirty files, secrets, protected systems, or deploys to avoid>
|
|
25
|
+
verification already run: <commands/probes already run and exact result, or "not run">
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// check-hard-risk-prefix — CI lint enforcing the 'hard-risk ' prefix convention.
|
|
3
|
+
//
|
|
4
|
+
// The hardFindings filter at runtime-client.mjs uses
|
|
5
|
+
// `finding.startsWith('hard-risk ')` to escalate findings to hard-risk
|
|
6
|
+
// status. Any push to riskFindings / hardFindings whose argument doesn't
|
|
7
|
+
// begin with 'hard-risk ' will be silently ignored by that filter — same
|
|
8
|
+
// false-classification bug class as the bare-word credential regex that
|
|
9
|
+
// was fixed 2026-05-17.
|
|
10
|
+
//
|
|
11
|
+
// Run from CI: `node ops/claude-hooks/scripts/check-hard-risk-prefix.mjs`
|
|
12
|
+
// Exit 0 if all push sites comply, exit 1 if any violations.
|
|
13
|
+
|
|
14
|
+
import { readdirSync, readFileSync, statSync } from 'node:fs';
|
|
15
|
+
import { join, resolve } from 'node:path';
|
|
16
|
+
import { homedir } from 'node:os';
|
|
17
|
+
|
|
18
|
+
const HOME = homedir();
|
|
19
|
+
const SCAN_ROOTS = [
|
|
20
|
+
resolve(HOME, 'rei-ai-brain', 'ops', 'claude-hooks'),
|
|
21
|
+
resolve(HOME, '.claude', 'hooks'),
|
|
22
|
+
resolve(HOME, '.codex', 'hooks'),
|
|
23
|
+
resolve(HOME, '.opencode', 'hooks'),
|
|
24
|
+
];
|
|
25
|
+
const SKIP_DIRS = new Set(['node_modules', '.git', 'dist', 'build']);
|
|
26
|
+
// Match riskFindings.push(<arg>) and hardFindings.push(<arg>) — capture <arg>
|
|
27
|
+
// up to the first comma or closing paren at the same nesting level.
|
|
28
|
+
const PUSH_RX = /\b(?:risk|hard)Findings\.push\s*\(\s*([^;\n]+?)\)\s*;?/g;
|
|
29
|
+
// Accept any of: 'hard-risk ...', "hard-risk ...", `hard-risk ...` (template),
|
|
30
|
+
// `hard-risk ${...}...` (template with interpolation in middle).
|
|
31
|
+
const PREFIX_RX = /^[`'"]hard-risk /;
|
|
32
|
+
|
|
33
|
+
function walkDir(root, files = []) {
|
|
34
|
+
let entries;
|
|
35
|
+
try {
|
|
36
|
+
entries = readdirSync(root, { withFileTypes: true });
|
|
37
|
+
} catch {
|
|
38
|
+
return files;
|
|
39
|
+
}
|
|
40
|
+
for (const entry of entries) {
|
|
41
|
+
if (entry.isDirectory()) {
|
|
42
|
+
if (SKIP_DIRS.has(entry.name) || entry.name.startsWith('.')) continue;
|
|
43
|
+
walkDir(join(root, entry.name), files);
|
|
44
|
+
} else if (entry.isFile() && /\.mjs$/i.test(entry.name) && !entry.name.endsWith('.test.mjs')) {
|
|
45
|
+
files.push(join(root, entry.name));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return files;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function scanFile(path) {
|
|
52
|
+
let text;
|
|
53
|
+
try {
|
|
54
|
+
text = readFileSync(path, 'utf8');
|
|
55
|
+
} catch {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
const violations = [];
|
|
59
|
+
let m;
|
|
60
|
+
PUSH_RX.lastIndex = 0;
|
|
61
|
+
while ((m = PUSH_RX.exec(text)) !== null) {
|
|
62
|
+
const arg = m[1].trim();
|
|
63
|
+
// Skip if the arg is itself a variable (not a literal) — variable
|
|
64
|
+
// pushes are caller-responsibility and can't be statically checked.
|
|
65
|
+
if (!/^[`'"]/.test(arg)) continue;
|
|
66
|
+
if (!PREFIX_RX.test(arg)) {
|
|
67
|
+
// Find line number
|
|
68
|
+
const lineNo = text.slice(0, m.index).split('\n').length;
|
|
69
|
+
violations.push({ path, line: lineNo, arg: arg.slice(0, 80) });
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return violations;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const allFiles = [];
|
|
76
|
+
for (const root of SCAN_ROOTS) {
|
|
77
|
+
try {
|
|
78
|
+
if (statSync(root).isDirectory()) walkDir(root, allFiles);
|
|
79
|
+
} catch {
|
|
80
|
+
// Root doesn't exist — skip silently
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const allViolations = [];
|
|
85
|
+
for (const f of allFiles) allViolations.push(...scanFile(f));
|
|
86
|
+
|
|
87
|
+
if (allViolations.length === 0) {
|
|
88
|
+
console.log(`PASS: scanned ${allFiles.length} hook file(s) across ${SCAN_ROOTS.length} root(s); all riskFindings.push / hardFindings.push call-sites use the 'hard-risk ' prefix convention.`);
|
|
89
|
+
process.exit(0);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
console.error(`FAIL: ${allViolations.length} push-site(s) violate the 'hard-risk ' prefix convention`);
|
|
93
|
+
console.error('Background: runtime-client.mjs:2233 hardFindings filter is structural (startsWith) — any push that omits the prefix is silently dropped from hard-risk escalation.');
|
|
94
|
+
console.error('Fix: every literal-string riskFindings.push/hardFindings.push argument must begin with "hard-risk " (with trailing space).');
|
|
95
|
+
console.error('');
|
|
96
|
+
for (const v of allViolations) {
|
|
97
|
+
console.error(` ${v.path}:${v.line} → ${v.arg}`);
|
|
98
|
+
}
|
|
99
|
+
process.exit(1);
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aria-conversational-doctrine-discipline
|
|
3
|
+
description: Use whenever I am about to make a factual claim to the operator about what code does, what is deployed, what caused an issue, what I have verified, or what is done. Loads the pre-emission ritual that closes the conversational-doctrine-recurrence gap documented at codex/plans/conversational-doctrine-recurrence-pattern.md.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aria Conversational Doctrine Discipline
|
|
7
|
+
|
|
8
|
+
This skill addresses the recurrence pattern operator (Hamza) named in
|
|
9
|
+
the 2026-05-07 session: the same agent gets caught violating the same
|
|
10
|
+
doctrine class in conversation, fixes the individual instance, then
|
|
11
|
+
introduces a new instance of the same class within 1–3 messages.
|
|
12
|
+
|
|
13
|
+
The doctrine scanner catches trip-vocab in files + commits but does
|
|
14
|
+
not catch claims I make in streaming conversation. This skill is the
|
|
15
|
+
pre-emission ritual that closes part of the gap. The other part lives
|
|
16
|
+
in `apps/arias-soul/scripts/scan-claim-evidence.mjs` (operator-invoked
|
|
17
|
+
validator).
|
|
18
|
+
|
|
19
|
+
## The pre-emission ritual
|
|
20
|
+
|
|
21
|
+
Before any message I send to the operator that contains a factual
|
|
22
|
+
claim — meaning anything of the form:
|
|
23
|
+
|
|
24
|
+
- *"X is Y"* (state of code, deployed system, file content)
|
|
25
|
+
- *"X does Y"* (behavior of a function, hook, script)
|
|
26
|
+
- *"X caused Y"* (causal claim about an error or outcome)
|
|
27
|
+
- *"X is not my work"* / *"this is not from my code"* (provenance disclaim)
|
|
28
|
+
- *"X works"* / *"X passes"* / *"X is verified"* (status claim)
|
|
29
|
+
- *"X is auto-generated"* / *"X is X"* (origin / classification claim)
|
|
30
|
+
- *"X is done"* / *"complete"* / *"shipped"* (completion claim)
|
|
31
|
+
|
|
32
|
+
I run the following ritual:
|
|
33
|
+
|
|
34
|
+
### Step 1 — name the claim explicitly
|
|
35
|
+
|
|
36
|
+
Write down (in my own working memory, before sending) the exact
|
|
37
|
+
factual assertion I am about to make.
|
|
38
|
+
|
|
39
|
+
### Step 2 — locate evidence
|
|
40
|
+
|
|
41
|
+
For the claim, identify the verification source:
|
|
42
|
+
|
|
43
|
+
| Claim type | Evidence source |
|
|
44
|
+
|---|---|
|
|
45
|
+
| Code behavior | `Read` the file + cite `file:line` |
|
|
46
|
+
| Deployed system state | Run a probe (`Bash` + `kubectl`, `curl`, `git log`); cite the command output |
|
|
47
|
+
| Test pass/fail | Run the test; cite the assertion count + exit code |
|
|
48
|
+
| Provenance ("my work" or "not my work") | List the components I shipped that touch the relevant surface; cite SHAs |
|
|
49
|
+
| Completion ("done"/"shipped") | Cite the commit SHA + the verify_predicate exit code |
|
|
50
|
+
| Status of an external resource | Run the read-only probe; cite the response |
|
|
51
|
+
|
|
52
|
+
### Step 3 — if evidence cannot be obtained
|
|
53
|
+
|
|
54
|
+
Replace the claim with one of:
|
|
55
|
+
|
|
56
|
+
- *"I do not know without access to <specific resource>"*
|
|
57
|
+
- *"I have not verified this — checking now..."* then run the verification before continuing
|
|
58
|
+
- *"My training suggests X but I have not verified against your codebase"* (acknowledging the substrate hierarchy: operator > codebase > training)
|
|
59
|
+
|
|
60
|
+
NEVER assert without one of:
|
|
61
|
+
1. Evidence cited inline
|
|
62
|
+
2. Explicit ignorance acknowledgment
|
|
63
|
+
3. Verification in progress
|
|
64
|
+
|
|
65
|
+
### Step 4 — emit with evidence inline
|
|
66
|
+
|
|
67
|
+
Structure the message so the evidence is adjacent to the claim, not
|
|
68
|
+
buried elsewhere. Examples:
|
|
69
|
+
|
|
70
|
+
- ✗ *"The validator passes its own spec."*
|
|
71
|
+
- ✓ *"The validator passes its own spec — `node apps/arias-soul/scripts/check-ledger-spec.mjs M9.DRIFT.1` exits 0 (verified just now)."*
|
|
72
|
+
|
|
73
|
+
- ✗ *"Not something my work caused."*
|
|
74
|
+
- ✓ *"I cannot prove my code caused or didn't cause the socket close — `aria-stop-gate.mjs` and `aria-harness-via-sdk.mjs` are plausible candidates per [investigation], but I have no access to your local logs to confirm."*
|
|
75
|
+
|
|
76
|
+
## What this skill does NOT do
|
|
77
|
+
|
|
78
|
+
- It is **not** a runtime gate. The harness cannot intercept my
|
|
79
|
+
conversational tokens before they stream to the operator. If I drift
|
|
80
|
+
away from this ritual mid-session, nothing automatically catches me.
|
|
81
|
+
- It is **not** a replacement for the operator's review. The operator
|
|
82
|
+
can invoke `apps/arias-soul/scripts/scan-claim-evidence.mjs` against
|
|
83
|
+
my response text to spot recurrence, but the operator must still
|
|
84
|
+
read my output.
|
|
85
|
+
- It does **not** address the recurrence frequency at the model layer.
|
|
86
|
+
That is a training-signal problem outside the scope of any
|
|
87
|
+
individual rung.
|
|
88
|
+
|
|
89
|
+
## Pattern documentation
|
|
90
|
+
|
|
91
|
+
When a recurrence happens, append to the catches table at
|
|
92
|
+
`codex/plans/conversational-doctrine-recurrence-pattern.md`. The
|
|
93
|
+
running list is the operator-readable record of how the pattern
|
|
94
|
+
behaves over time.
|
|
95
|
+
|
|
96
|
+
## Self-bind
|
|
97
|
+
|
|
98
|
+
This skill itself contains claims about behavior of the doctrine
|
|
99
|
+
scanner, the harness lifecycle, and what the validator does. Each
|
|
100
|
+
cited at the file path operator can read. If any claim in this skill
|
|
101
|
+
becomes untrue (e.g., harness changes), the skill must be updated.
|
|
@@ -160,7 +160,7 @@ console.log('\nTest 2: transcript with all three context signals → allow');
|
|
|
160
160
|
assert('no block decision in stdout (stdout is empty or non-block)', !parsed || parsed.decision !== 'block', parsed?.decision);
|
|
161
161
|
|
|
162
162
|
// Cleanup
|
|
163
|
-
try { unlinkSync(transcriptFile); } catch {}
|
|
163
|
+
try { unlinkSync(transcriptFile); } catch (_err) { void _err; /* silent-by-design (M0.H.X3): test cleanup */ }
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
// ── Test 3: deduplication — gate already fired within 60s → skip ───────
|
|
@@ -231,7 +231,7 @@ console.log('\nTest 6: only harness packet signal (missing direction + memory re
|
|
|
231
231
|
parsed?.reason?.slice(0, 200),
|
|
232
232
|
);
|
|
233
233
|
|
|
234
|
-
try { unlinkSync(transcriptFile); } catch {}
|
|
234
|
+
try { unlinkSync(transcriptFile); } catch (_err) { void _err; /* silent-by-design (M0.H.X3): test cleanup */ }
|
|
235
235
|
cleanTurnState(SESSION_ID);
|
|
236
236
|
}
|
|
237
237
|
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
// ── doctrine-self-check-file: cleanup batch (2026-05-06) ──
|
|
3
|
+
// File-level acks for trigger patterns appearing in pre-existing comments
|
|
4
|
+
// describing prior antipatterns being migrated. Each ack names a trigger
|
|
5
|
+
// the doctrine_trigger_map covers; per-file ack covers all matches.
|
|
6
|
+
// doctrine-self-check-file: tests.?(?:passed|pass|ed)|(?:smoke|unit|integration).?test.?(?:pass|ok|good) session-added-comments-describing-prior-state-or-migration
|
|
7
|
+
// doctrine-self-check-file: want me to|should i session-added-comments-describing-prior-state-or-migration
|
|
2
8
|
// Smoke test: Phase 11 #59 — canonical lens labeling
|
|
3
9
|
//
|
|
4
10
|
// Verifies that aria-pre-tool-gate.mjs and aria-stop-gate.mjs:
|
|
@@ -62,7 +68,12 @@ function restorePacket() {
|
|
|
62
68
|
} else if (existsSync(PACKET_PATH)) {
|
|
63
69
|
unlinkSync(PACKET_PATH);
|
|
64
70
|
}
|
|
65
|
-
} catch {
|
|
71
|
+
} catch (_err) {
|
|
72
|
+
// silent-by-design (M0.H.X3): test fixture restore — failure here
|
|
73
|
+
// doesn't affect production behavior; test harness will see the
|
|
74
|
+
// assertion failure if state was corrupted.
|
|
75
|
+
void _err;
|
|
76
|
+
}
|
|
66
77
|
}
|
|
67
78
|
|
|
68
79
|
function writeOwnerPacket() {
|
|
@@ -181,7 +192,7 @@ const tmpTranscriptStop = `/tmp/test-tier-stop-transcript-${Date.now()}.jsonl`;
|
|
|
181
192
|
|
|
182
193
|
function cleanup() {
|
|
183
194
|
[tmpTranscript, tmpTranscriptStop].forEach((p) => {
|
|
184
|
-
try { if (existsSync(p)) unlinkSync(p); } catch {}
|
|
195
|
+
try { if (existsSync(p)) unlinkSync(p); } catch (_err) { void _err; /* silent-by-design (M0.H.X3): test cleanup */ }
|
|
185
196
|
});
|
|
186
197
|
restorePacket();
|
|
187
198
|
}
|
|
@@ -328,7 +339,7 @@ console.log('\nTest 4: aria-stop-gate — CLIENT tier keeps canonical lens label
|
|
|
328
339
|
console.log('\nTest 5: missing packet cache → defaults to canonical labels');
|
|
329
340
|
{
|
|
330
341
|
// Remove the packet cache
|
|
331
|
-
try { unlinkSync(PACKET_PATH); } catch {}
|
|
342
|
+
try { unlinkSync(PACKET_PATH); } catch (_err) { void _err; /* silent-by-design (M0.H.X3): test cleanup */ }
|
|
332
343
|
writeEmptyTranscript(tmpTranscript);
|
|
333
344
|
const result = runPreToolGate(tmpTranscript);
|
|
334
345
|
|