@aria_asi/cli 0.2.39 → 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 +1271 -40
- 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 +516 -92
- 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 +516 -92
- 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 +516 -92
- 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 +1273 -40
- 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,270 @@
|
|
|
1
|
+
# Research Orchestrator Cookbook — Decomposition, Sourcing, Synthesis Patterns
|
|
2
|
+
|
|
3
|
+
> Loaded by `aria-research-orchestrator` for external evidence acquisition.
|
|
4
|
+
|
|
5
|
+
## 1. The Question Decomposition Frame
|
|
6
|
+
|
|
7
|
+
Before any fetch, decompose the research request into 2-5 sub-questions, each with:
|
|
8
|
+
- A specific source class (primary / secondary / tertiary)
|
|
9
|
+
- A freshness window (how recent does the source need to be)
|
|
10
|
+
- A success criterion (what answer would resolve this)
|
|
11
|
+
|
|
12
|
+
### Example decomposition
|
|
13
|
+
**Vague request:** "Research Linear vs Asana vs Jira"
|
|
14
|
+
|
|
15
|
+
**Decomposed:**
|
|
16
|
+
1. **Pricing at 10-50 seats** — primary (vendor pricing pages), freshness 30 days, success: dollar amount per seat per month at each tier
|
|
17
|
+
2. **Reviews mentioning onboarding friction** — secondary (G2, Capterra, Reddit), freshness 90 days, success: 5+ recent reviews with onboarding-specific content
|
|
18
|
+
3. **Market share / dominant choice for SMB SaaS** — secondary/tertiary (industry reports, LinkedIn polls, podcast mentions), freshness 6 months, success: aggregated signal from ≥3 sources
|
|
19
|
+
4. **Public roadmap signals** — primary (vendor blogs, changelog), freshness 60 days, success: feature direction known
|
|
20
|
+
|
|
21
|
+
Now each can be fetched with the right tool and verified.
|
|
22
|
+
|
|
23
|
+
## 2. The Source Class Hierarchy
|
|
24
|
+
|
|
25
|
+
### Primary sources (highest authority)
|
|
26
|
+
- Official docs, specs, RFCs (e.g., MCP spec, WCAG 2.2)
|
|
27
|
+
- SEC filings, financial filings (10-K, 10-Q, S-1)
|
|
28
|
+
- Vendor pricing pages, official changelog
|
|
29
|
+
- First-party blog posts (vendor's own engineering / product blog)
|
|
30
|
+
- Source code itself (GitHub repos, package READMEs)
|
|
31
|
+
|
|
32
|
+
**When to use**: facts, contracts, specifications. Authoritative on what something IS.
|
|
33
|
+
|
|
34
|
+
### Authoritative-secondary sources
|
|
35
|
+
- Industry analyst reports (Gartner, Forrester, ARK Invest, Bessemer)
|
|
36
|
+
- Peer-reviewed academic research (use `search_vertical(vertical='academic')`)
|
|
37
|
+
- Named-author technical blog posts (the author's reputation is the warrant)
|
|
38
|
+
- Industry benchmark reports (KeyBanc SaaS, OpenView PLG, Battery Ventures)
|
|
39
|
+
|
|
40
|
+
**When to use**: synthesis, trends, benchmarks. Authoritative on aggregated patterns.
|
|
41
|
+
|
|
42
|
+
### Aggregated-secondary sources
|
|
43
|
+
- Review sites (G2, Capterra, TrustRadius)
|
|
44
|
+
- Comparison sites (sites that systematically compare vendors)
|
|
45
|
+
- Well-curated awesome-lists on GitHub (community-vetted)
|
|
46
|
+
|
|
47
|
+
**When to use**: comparative info, customer-voice signals. Authoritative on aggregated user opinion.
|
|
48
|
+
|
|
49
|
+
### Tertiary / signal sources
|
|
50
|
+
- Social media (X, LinkedIn, Reddit)
|
|
51
|
+
- Forum threads (Hacker News, dev forums)
|
|
52
|
+
- Podcast transcripts
|
|
53
|
+
- Discord / Slack community archives
|
|
54
|
+
|
|
55
|
+
**When to use**: customer-language harvesting (what words do users use), sentiment direction, early-signal trends. NOT authoritative for facts.
|
|
56
|
+
|
|
57
|
+
## 3. The Freshness Match
|
|
58
|
+
|
|
59
|
+
Different research questions have different freshness requirements:
|
|
60
|
+
|
|
61
|
+
| Question type | Freshness window | Why |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| Pricing | 30 days | Vendors change pricing frequently |
|
|
64
|
+
| Market data / SaaS metrics | 90-180 days | Quarterly reports common; older data still relevant |
|
|
65
|
+
| Regulatory / legal | 6 months | Slower-moving but checks every 6 months |
|
|
66
|
+
| Tech specs / RFCs | Indefinite if canonical | Older spec is the spec; check version |
|
|
67
|
+
| Competitive feature comparison | 60 days | Roadmaps move quickly |
|
|
68
|
+
| News / current events | 7 days max | News by definition |
|
|
69
|
+
| Academic research | Indefinite if cited | Citation count > recency for foundational |
|
|
70
|
+
| Customer reviews | 90 days | Older reviews may not reflect current product |
|
|
71
|
+
|
|
72
|
+
### The freshness check primitive
|
|
73
|
+
```typescript
|
|
74
|
+
function isStillFresh(source: Source, question: QuestionType): boolean {
|
|
75
|
+
const limit = FRESHNESS_WINDOWS[question];
|
|
76
|
+
const ageDays = (Date.now() - source.publishedAt) / (1000 * 60 * 60 * 24);
|
|
77
|
+
return limit === Infinity || ageDays <= limit;
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
If the freshest available source is past the window, EITHER expand the search OR explicitly mark as "no current data; using closest available" with the date.
|
|
82
|
+
|
|
83
|
+
## 4. The Tool Mapping
|
|
84
|
+
|
|
85
|
+
| Sub-question shape | Tool | When |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| "What does this URL say?" | `fetch_url` with prompt | Need extracted info from a known page |
|
|
88
|
+
| "What's currently true about X?" (broad) | `search_web` with 2-3 keyword queries | Need ranked results across the web |
|
|
89
|
+
| "Find papers / specs on X" | `search_vertical(vertical='academic')` | First-party technical/scientific sources |
|
|
90
|
+
| "Find product / pricing for X" | `search_vertical(vertical='shopping')` | Comparison + pricing |
|
|
91
|
+
| "Find people who do X at Y" | `search_vertical(vertical='people')` | Hiring / partnership / interview research |
|
|
92
|
+
| "Show me images / videos of X" | `search_vertical(vertical='image' or 'video')` | Design research, demo research |
|
|
93
|
+
| "I need to actually USE this site" | `browser_task` | Login, fill form, multi-step interaction |
|
|
94
|
+
| "Compare 10+ entities" | `wide_research` or `wide_browse` | Batch processing (cost gate at 20+) |
|
|
95
|
+
|
|
96
|
+
### Query writing rules
|
|
97
|
+
- **Natural phrases, not keyword lists**: "INP optimization 2025 production" beats "INP perf web vital fast 2025"
|
|
98
|
+
- **Time-sensitive queries include date**: "OWASP Top 10 2025" not "OWASP Top 10 latest"
|
|
99
|
+
- **Multi-entity queries split parallel**: 3 separate queries about 3 vendors beats 1 query mentioning all 3
|
|
100
|
+
- **No quotes** unless exact-match required (fuzzy matching usually better)
|
|
101
|
+
- **Max 3 queries per call** (efficiency)
|
|
102
|
+
|
|
103
|
+
## 5. The Verification Cycle
|
|
104
|
+
|
|
105
|
+
For each non-trivial claim, verify with ≥2 independent sources OR explicitly mark as single-sourced.
|
|
106
|
+
|
|
107
|
+
### Verification levels
|
|
108
|
+
- **Cross-verified** (2+ independent sources agree) — confident; cite both
|
|
109
|
+
- **Authoritative-single** (one primary source) — confident; cite the primary
|
|
110
|
+
- **Single-secondary** (one secondary source) — flag uncertainty; cite the source
|
|
111
|
+
- **Triangulated** (multiple sources directionally agree but specifics differ) — cite range
|
|
112
|
+
|
|
113
|
+
### Anti-patterns
|
|
114
|
+
- Citing 3 secondary sources that all reference the same primary (still single-sourced)
|
|
115
|
+
- Citing tertiary as if primary
|
|
116
|
+
- Burying single-sourced claims in a list of cited claims (mark them explicitly)
|
|
117
|
+
|
|
118
|
+
## 6. The Synthesis Back-to-Caller Pattern
|
|
119
|
+
|
|
120
|
+
Research output is NOT the final answer. Hand verified evidence back to the calling skill in its native format.
|
|
121
|
+
|
|
122
|
+
### For aria-revenue-engine
|
|
123
|
+
```markdown
|
|
124
|
+
## Research synthesis — feeding to aria-revenue-engine
|
|
125
|
+
|
|
126
|
+
**Sub-question 1: Linear pricing at 10-50 seats**
|
|
127
|
+
- $8/seat/month (Standard), $14/seat/month (Plus) — [Linear pricing page](https://linear.app/pricing), 2026-05
|
|
128
|
+
- 10% annual prepay discount
|
|
129
|
+
|
|
130
|
+
**Sub-question 2: Asana pricing**
|
|
131
|
+
- $10.99/seat/month (Premium), $24.99/seat/month (Business) — [Asana pricing](https://asana.com/pricing), 2026-05
|
|
132
|
+
|
|
133
|
+
**Sub-question 3: SMB market share signal**
|
|
134
|
+
- Linear dominant in startup / dev-team segments per multiple 2024-2025 podcast transcripts
|
|
135
|
+
- Asana dominant in non-engineering teams per G2 2025 review aggregation
|
|
136
|
+
|
|
137
|
+
**Confidence:** sub-questions 1+2 high (primary sources, current); sub-question 3 medium (secondary signal, directional)
|
|
138
|
+
|
|
139
|
+
**Hand-off note for aria-revenue-engine:** Linear's $8 entry point sets the SMB ceiling for direct competitors. If our PM-tool product targets startup engineering teams, pricing above Linear's Plus tier ($14) requires explicit feature differentiation, not parity-with-premium positioning.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### For aria-gtm-architect
|
|
143
|
+
Pass the buyer-language samples + competitive positioning data:
|
|
144
|
+
```markdown
|
|
145
|
+
## Buyer language samples (for message-fit work)
|
|
146
|
+
|
|
147
|
+
From G2 reviews of Linear (last 90 days, 5 highest-rated):
|
|
148
|
+
- "I lose less time switching contexts between PRs and tasks"
|
|
149
|
+
- "My team finally agrees on what 'in progress' means"
|
|
150
|
+
- "We stopped having Slack-only updates that nobody could find later"
|
|
151
|
+
|
|
152
|
+
From Reddit r/startups thread on PM tools (Apr 2026):
|
|
153
|
+
- "Notion is for docs; Linear is for actually shipping"
|
|
154
|
+
- "Stopped using Asana when our eng team revolted"
|
|
155
|
+
|
|
156
|
+
**Pattern**: buyer language emphasizes shipping speed + clarity + cross-functional alignment, NOT feature lists.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 7. The Memory-First Discipline (Noor recognition)
|
|
160
|
+
|
|
161
|
+
Research is expensive; memory is free.
|
|
162
|
+
|
|
163
|
+
### Before any external fetch
|
|
164
|
+
1. Check `noor-recognition` for prior research on the same question
|
|
165
|
+
2. Check coach-kernel ledger for prior decisions referencing this domain
|
|
166
|
+
3. Check user memory (via `memory_search`) for owner statements on this topic
|
|
167
|
+
4. ONLY fetch externally if memory is genuinely insufficient
|
|
168
|
+
|
|
169
|
+
### When memory + new fetch combine
|
|
170
|
+
- Lead with what we already know (cite memory)
|
|
171
|
+
- Add what's new (cite fresh sources with dates)
|
|
172
|
+
- Note where memory and fresh fetch disagree (surface the contradiction)
|
|
173
|
+
|
|
174
|
+
## 8. Wide-Research Patterns (when ≥10 entities)
|
|
175
|
+
|
|
176
|
+
For batch research:
|
|
177
|
+
- ≤9 entities: individual `fetch_url` / `search_web` calls
|
|
178
|
+
- 10-19 entities: `wide_research` or `wide_browse` (no confirmation gate)
|
|
179
|
+
- 20+ entities: `confirm_action` first, then `wide_research`/`wide_browse`
|
|
180
|
+
|
|
181
|
+
### Schema design for wide_research
|
|
182
|
+
```typescript
|
|
183
|
+
// Schema file passed to wide_research
|
|
184
|
+
{
|
|
185
|
+
type: 'object',
|
|
186
|
+
properties: {
|
|
187
|
+
company_name: { type: 'string', title: 'Company' },
|
|
188
|
+
pricing_tier_1: { type: 'string', title: 'Starter Price' },
|
|
189
|
+
pricing_tier_2: { type: 'string', title: 'Pro Price' },
|
|
190
|
+
activation_signal: { type: 'string', title: 'Activation Signal' },
|
|
191
|
+
sources: { type: 'string', title: 'Sources' }, // markdown links
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Output: CSV with one row per entity. Use the CSV in subsequent synthesis.
|
|
197
|
+
|
|
198
|
+
## 9. Source Citation Discipline
|
|
199
|
+
|
|
200
|
+
### Inline citation format (per main doctrine)
|
|
201
|
+
- ✅ "Linear charges $8/seat ([Linear pricing page](https://linear.app/pricing))"
|
|
202
|
+
- ❌ "Linear charges $8/seat (source 1)"
|
|
203
|
+
- ❌ "Linear charges $8/seat" (no citation)
|
|
204
|
+
|
|
205
|
+
Anchor text MUST be the source name, never "source" / "link" / "click here". Every fact-claim has its citation.
|
|
206
|
+
|
|
207
|
+
### Per-skill citation styles
|
|
208
|
+
- **For owner-facing summary**: inline markdown links (above)
|
|
209
|
+
- **For gate-block JSON**: structured sources array
|
|
210
|
+
- **For artifact files (PDFs / docs)**: footnote with full URL + accessed-date
|
|
211
|
+
- **For cookbook references**: prose URL inline ([source name](url))
|
|
212
|
+
|
|
213
|
+
## 10. Anti-Patterns
|
|
214
|
+
|
|
215
|
+
### Running research before checking memory (Noor)
|
|
216
|
+
Wasted cost; slower turn. Memory first; fetch on gap.
|
|
217
|
+
|
|
218
|
+
### Vague research requests not decomposed
|
|
219
|
+
"Research X" returns vague answers. Decompose to 2-5 specific sub-questions.
|
|
220
|
+
|
|
221
|
+
### Quoting tertiary as if primary
|
|
222
|
+
A Reddit thread is signal, not evidence. Use tertiary for sentiment direction, not facts.
|
|
223
|
+
|
|
224
|
+
### Single-sourcing time-sensitive claims without flagging
|
|
225
|
+
Pricing on one vendor page is single-sourced. Mark it explicitly. Don't bury.
|
|
226
|
+
|
|
227
|
+
### Burying conclusion in bibliography
|
|
228
|
+
Lead with the answer. Sources support; they don't substitute.
|
|
229
|
+
|
|
230
|
+
### Failing to hand synthesis back to calling skill
|
|
231
|
+
Research is dead context if not consumed. Always synthesize back to the requester in their format.
|
|
232
|
+
|
|
233
|
+
### Live-fetching when memory is sufficient
|
|
234
|
+
Aria's garden + pulse + hive substrate already contains relevant prior research. Check before fetching.
|
|
235
|
+
|
|
236
|
+
## 11. Research checklist (paste-ready)
|
|
237
|
+
|
|
238
|
+
```markdown
|
|
239
|
+
## Decomposition
|
|
240
|
+
- [ ] Request decomposed into 2-5 specific sub-questions
|
|
241
|
+
- [ ] Source class declared per sub-question (primary / secondary / tertiary)
|
|
242
|
+
- [ ] Freshness window matched to question type
|
|
243
|
+
- [ ] Success criterion named per sub-question
|
|
244
|
+
|
|
245
|
+
## Memory-first
|
|
246
|
+
- [ ] Noor checked for prior research
|
|
247
|
+
- [ ] Coach-kernel ledger checked for prior decisions
|
|
248
|
+
- [ ] User memory checked for owner statements
|
|
249
|
+
|
|
250
|
+
## Fetching
|
|
251
|
+
- [ ] Right tool per sub-question (fetch_url / search_web / vertical / browser_task / wide_*)
|
|
252
|
+
- [ ] Queries written natural-phrase
|
|
253
|
+
- [ ] Parallel where independent
|
|
254
|
+
|
|
255
|
+
## Verification
|
|
256
|
+
- [ ] Each non-trivial claim cross-verified OR flagged single-sourced
|
|
257
|
+
- [ ] Freshness check passed; stale sources noted
|
|
258
|
+
- [ ] Source-class hierarchy respected (primary > secondary > tertiary)
|
|
259
|
+
|
|
260
|
+
## Synthesis
|
|
261
|
+
- [ ] Conclusion leads (headline first per readable-output)
|
|
262
|
+
- [ ] Sub-questions answered with citation each
|
|
263
|
+
- [ ] Caveats flagged (single-sourced, partial freshness, contradictions)
|
|
264
|
+
- [ ] Synthesis handed back to calling skill in calling-skill-native format
|
|
265
|
+
|
|
266
|
+
## Coach kernel
|
|
267
|
+
- [ ] Research event recorded with `risk_class: 'research_action'`
|
|
268
|
+
- [ ] Freshness + source-quality predicate recorded
|
|
269
|
+
- [ ] Recovery contract gateType: advisory (research is teach-not-block)
|
|
270
|
+
```
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aria-retention-engine
|
|
3
|
+
description: TRIGGER for any churn, retention, renewal, expansion, NPS, CSAT, onboarding, activation, escalation, refund-save, win-back, account-health, customer-success, or post-sale lifecycle decision. Composes the cognitive substrate with a churn-cause + retention-leverage + cohort-decay frame.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Aria Retention Engine
|
|
7
|
+
|
|
8
|
+
Cognition skill for the post-sale lifecycle. Most net revenue retention dies in the first 30 days; most expansion is invisible until you measure it cohort-by-cohort. This skill exists to make those signals visible before the renewal call.
|
|
9
|
+
|
|
10
|
+
## Prime Doctrine
|
|
11
|
+
|
|
12
|
+
Retention is upstream of every other metric. A 90% NRR business at any growth rate is in trouble; a 130% NRR business at any growth rate is compounding. Optimize retention before optimizing acquisition.
|
|
13
|
+
|
|
14
|
+
- **Churn is rarely about price.** It's about expected vs delivered value, friction, and life-cycle moments. Pricing as a churn explanation is usually a stand-in for a deeper truth.
|
|
15
|
+
- **The first 7 days set the next 12 months.** Activation depth in week 1 predicts month-12 retention more than any single feature.
|
|
16
|
+
- **Renewals are won 90 days before the renewal date.** A renewal won in the renewal week is a coin flip; one won in the prior quarter is structural.
|
|
17
|
+
- **Expansion is the silent revenue lever.** A 110% gross retention business with 130% net retention has 2× the LTV of a 110% gross / 110% net business at the same cost.
|
|
18
|
+
|
|
19
|
+
## Trigger Detection
|
|
20
|
+
|
|
21
|
+
Fire on:
|
|
22
|
+
|
|
23
|
+
- Churn analysis / churn-cause investigation
|
|
24
|
+
- Renewal forecast / renewal at-risk identification
|
|
25
|
+
- Expansion / upsell / cross-sell strategy (post-sale)
|
|
26
|
+
- NPS / CSAT / health-score design or interpretation
|
|
27
|
+
- Onboarding / activation flow design
|
|
28
|
+
- Customer escalation / refund-save / make-good
|
|
29
|
+
- Win-back campaign for churned cohort
|
|
30
|
+
- Account-health scoring or QBR design
|
|
31
|
+
|
|
32
|
+
## Required Workflow (cause-leverage-decay)
|
|
33
|
+
|
|
34
|
+
Every retention decision must answer:
|
|
35
|
+
|
|
36
|
+
1. **Churn-cause decomposition.** Split current churn into: (a) wrong-fit (should have been disqualified at sale), (b) un-activated (signed but never adopted), (c) life-cycle (changed jobs, sunset use case), (d) competitor-loss (real comparison loss), (e) price (validated, not assumed). Each has a different fix.
|
|
37
|
+
2. **Retention-leverage map.** For the dominant churn cause, what is the highest-leverage intervention? Onboarding redesign helps cause (b) but does nothing for (a). Sales qualification changes help (a) but don't help (b).
|
|
38
|
+
3. **Cohort-decay curve.** Plot survival by cohort (acquisition month). Is the curve flattening (good — fixes are landing), steepening (bad — recent cohorts are worse), or unchanged (no signal yet)?
|
|
39
|
+
|
|
40
|
+
## Retention-Mapped Lenses
|
|
41
|
+
|
|
42
|
+
`ghazali-8lens` under retention:
|
|
43
|
+
|
|
44
|
+
- **truth** — is the churn data complete? Are paused / downgraded / silent-departed customers counted?
|
|
45
|
+
- **harm** — does the retention intervention create resentment (e.g., aggressive save calls)?
|
|
46
|
+
- **trust** — does the win-back offer respect the original commitment, or feel manipulative?
|
|
47
|
+
- **power** — is the customer locked-in by data export friction, or genuinely choosing to stay?
|
|
48
|
+
- **reflection** — would the saved customer recommend us 6 months later, or is this a save that becomes a detractor?
|
|
49
|
+
- **context** — is this churn driven by something external (industry shift) or internal (product gap)?
|
|
50
|
+
- **impact** — NRR / GRR delta at the cohort level, with confidence
|
|
51
|
+
- **beauty** — does the renewal experience feel earned, or transactional?
|
|
52
|
+
|
|
53
|
+
## User-Facing Layout
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
## [Decision: name the churn cause + leverage point + intervention in one line]
|
|
57
|
+
|
|
58
|
+
- [Cohort decomposition — split by month or segment, real numbers]
|
|
59
|
+
- [Dominant churn cause — named with evidence]
|
|
60
|
+
- [Highest-leverage intervention — concrete, scoped]
|
|
61
|
+
- [Predictor predicate — NRR / GRR / activation rate target]
|
|
62
|
+
|
|
63
|
+
**Next:** [first concrete action with measurable check at 30/60/90 days]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Composition Rule
|
|
67
|
+
|
|
68
|
+
- Composes with `aria-business-frame`
|
|
69
|
+
- Calls `aria-customer-truth` for churn-reason interviews (the only reliable source for cause attribution)
|
|
70
|
+
- Calls `aria-revenue-engine` if the churn cause genuinely is price (rare but real)
|
|
71
|
+
- Calls `mizan`, `tadabbur`, `ghazali-8lens` per business-frame defaults
|
|
72
|
+
- Calls `predictor` for the cohort-survival predicate
|
|
73
|
+
- Calls `noor-recognition` for prior retention experiments and their actual cohort impact
|
|
74
|
+
|
|
75
|
+
## Recovery Contract
|
|
76
|
+
|
|
77
|
+
- If churn-cause data is missing: do NOT recommend an intervention. Recommend a 10-customer churn-interview sprint via `aria-customer-truth`, or surface 3 hypotheses with explicit confidence weights.
|
|
78
|
+
- If the cohort sample is too small (< 30 churned in the relevant cohort): say so explicitly. "We don't have enough cohort data to recommend a structural change; here's a non-structural pilot."
|
|
79
|
+
- If the retention intervention will burn customer trust (e.g., aggressive save calls, dark-pattern downgrade flows): hard NO via `ghazali-8lens` trust lens. Surface alternatives.
|
|
80
|
+
- Log retention decisions to coach kernel with `risk_class: 'retention_action'` and the cohort-survival predicate.
|
|
81
|
+
|
|
82
|
+
## Anti-Patterns
|
|
83
|
+
|
|
84
|
+
- Treating overall churn rate as if it were homogeneous (always decompose by cohort + cause)
|
|
85
|
+
- Recommending feature work as a churn fix when the dominant cause is wrong-fit at sale
|
|
86
|
+
- Aggressive saves that win the dollar and lose the referral
|
|
87
|
+
- Win-back campaigns to churned customers without fixing the original churn cause
|
|
88
|
+
- NPS as a churn predictor (it's noisier than usage data; use both, not just NPS)
|
|
89
|
+
|
|
90
|
+
## First-Class Production Contract
|
|
91
|
+
|
|
92
|
+
This skill must deepen the work, not decorate it. When loaded, apply it as a production requirement:
|
|
93
|
+
|
|
94
|
+
- no placeholders, no fake fallbacks, no vague future wiring, and no cosmetic compliance
|
|
95
|
+
- real proof from the repo, runtime, tests, logs, endpoint, or owner instruction before any completion claim
|
|
96
|
+
- a redo contract whenever the skill blocks or finds a gap: what failed, what to change, how to re-test, and when to re-submit
|
|
97
|
+
- architect/ARIA console escalation when the same failure repeats twice, crosses system boundaries, or cannot be verified locally
|
|
98
|
+
- owner-visible output that states the exact state of the work: changed, verified, blocked, or needing a decision
|
|
99
|
+
|
|
100
|
+
## Self-Executing Recovery Contract
|
|
101
|
+
|
|
102
|
+
When this skill blocks, fails verification, or finds a gap, the agent must execute recovery rather than hand work back as a user-only decision.
|
|
103
|
+
|
|
104
|
+
- Make exactly one self-executed recovery attempt using the strongest safe local, repository, runtime, test, log, endpoint, or owner-provided evidence available.
|
|
105
|
+
- If the same failure repeats after that one recovery attempt, switch to architect execution mode: operate under the architect/ARIA harness to diagnose, choose the next action, execute the repair path, and verify the result.
|
|
106
|
+
- If Aria or the architect service is unavailable, fall back to the strongest available client LLM under the architect harness or strongest available local harness substrate; mark the fallback explicitly and continue recovery instead of stopping.
|
|
107
|
+
- Do not end with user-handoff-only behavior. If blocked after the recovery path, report the executed recovery attempt, evidence, remaining blocker, and the next concrete action or owner decision needed; do not merely ask the user to take over.
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
## Self-Executing Recovery Contract
|
|
111
|
+
|
|
112
|
+
If retention recommendation cannot be made:
|
|
113
|
+
|
|
114
|
+
- One re-run with the missing decomposition or interview evidence
|
|
115
|
+
- If still insufficient, recommend the smallest cohort-isolated test (e.g., A/B activation flow on the next 50 signups) with stop-criteria
|
|
116
|
+
- Never present a retention recommendation as confident without cohort evidence supporting it
|
|
117
|
+
|
|
118
|
+
## Why This Exists
|
|
119
|
+
|
|
120
|
+
Most owners over-invest in acquisition and under-invest in retention because retention is harder to measure and slower to compound. This skill makes the cognition explicit so the lever doesn't get ignored.
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# Retention Engine Cookbook — Churn, Onboarding, Expansion Patterns
|
|
2
|
+
|
|
3
|
+
> Loaded by `aria-retention-engine` for churn analysis, renewal forecasting, expansion strategy, escalation handling.
|
|
4
|
+
> See also: [`../../aria-business-frame/references/business-cookbook.md`](../../aria-business-frame/references/business-cookbook.md) (constraint categories, NRR benchmarks)
|
|
5
|
+
> See also: [`../../aria-revenue-engine/references/revenue-cookbook.md`](../../aria-revenue-engine/references/revenue-cookbook.md) (NRR/GRR math, cohort patterns)
|
|
6
|
+
|
|
7
|
+
## 1. The 5 Churn Causes (decompose before intervening)
|
|
8
|
+
|
|
9
|
+
Most churn analyses are wrong because they assume churn is one thing. It's five.
|
|
10
|
+
|
|
11
|
+
### 1. Wrong-fit at sale
|
|
12
|
+
- Customer signed up for the wrong reason; never had a real fit
|
|
13
|
+
- **Signal**: short-tenure churn (months 1-3); cohort-decomposed by acquisition channel often shows one channel concentrating wrong-fit
|
|
14
|
+
- **Fix**: sales qualification criteria; ICP definition tightening; channel mix adjustment
|
|
15
|
+
- **Wrong fix**: onboarding redesign (won't help — they never had a problem to solve here)
|
|
16
|
+
|
|
17
|
+
### 2. Un-activated
|
|
18
|
+
- Signed up but never reached the aha moment
|
|
19
|
+
- **Signal**: usage data shows no key actions in first 7-14 days; logins drop after week 2
|
|
20
|
+
- **Fix**: onboarding redesign; activation moment redefinition; in-product nudges
|
|
21
|
+
- **Wrong fix**: more emails (the unactivated cohort isn't reading)
|
|
22
|
+
|
|
23
|
+
### 3. Life-cycle
|
|
24
|
+
- Their use case sunset; they changed roles; their company got acquired
|
|
25
|
+
- **Signal**: long-tenure churn (year 2+); usage was healthy until end
|
|
26
|
+
- **Fix**: adjacent product expansion; champion-departure-triggered playbooks; accept some as natural
|
|
27
|
+
- **Wrong fix**: pricing changes (the price isn't the problem)
|
|
28
|
+
|
|
29
|
+
### 4. Competitor-loss
|
|
30
|
+
- Real comparison loss to another vendor
|
|
31
|
+
- **Signal**: explicit competitor mentioned in churn interview; usage steady until cancel
|
|
32
|
+
- **Fix**: feature gap closure; positioning sharpening; pricing recalibration
|
|
33
|
+
- **Wrong fix**: discount-to-save (you're buying churn — the relationship is already lost)
|
|
34
|
+
|
|
35
|
+
### 5. Price (validated, not assumed)
|
|
36
|
+
- Genuinely a budget issue; would have stayed at lower price
|
|
37
|
+
- **Signal**: explicit budget cite; downgrade attempt before churn
|
|
38
|
+
- **Fix**: lower-priced tier; usage-based component; annual prepay discount
|
|
39
|
+
- **Wrong fix**: discount the existing price (creates discount cohort drag — see revenue cookbook §3)
|
|
40
|
+
|
|
41
|
+
### The diagnostic
|
|
42
|
+
Each cause needs a different fix. Misdiagnosis is the most common retention-engine failure. Decompose churn into cause categories BEFORE recommending intervention.
|
|
43
|
+
|
|
44
|
+
## 2. Cohort-decay curves (replace flat churn for runway)
|
|
45
|
+
|
|
46
|
+
**Source:** [Fiscallion — SaaS Cohort Analysis](https://www.fiscallion.io/blog/saas-cohort-analysis-how-to-turn-retention-data-into-decisions)
|
|
47
|
+
|
|
48
|
+
### The pattern
|
|
49
|
+
Most SaaS lose more customers in months 1-3 than 9-12. A flat churn assumption:
|
|
50
|
+
- Overstates near-term revenue (churn is higher early than the average)
|
|
51
|
+
- Understates long-term retention (survivors are stickier than the average)
|
|
52
|
+
|
|
53
|
+
### The fix
|
|
54
|
+
Replace flat churn with cohort decay curves for runway forecasts:
|
|
55
|
+
- Compute survival % at month 1, 3, 6, 12, 18, 24 for each acquisition cohort
|
|
56
|
+
- Fit a power-law or Weibull decay curve
|
|
57
|
+
- Project forward; compare to flat-churn projection
|
|
58
|
+
- Differential is real revenue — often the difference between "raise now" and "extend runway"
|
|
59
|
+
|
|
60
|
+
### Reference SQL (cohort survival)
|
|
61
|
+
```sql
|
|
62
|
+
WITH cohort_signups AS (
|
|
63
|
+
SELECT customer_id, DATE_TRUNC('month', signup_date) as cohort_month
|
|
64
|
+
FROM customers
|
|
65
|
+
),
|
|
66
|
+
cohort_survival AS (
|
|
67
|
+
SELECT
|
|
68
|
+
cs.cohort_month,
|
|
69
|
+
DATE_TRUNC('month', s.subscription_active_date) as period_month,
|
|
70
|
+
COUNT(DISTINCT s.customer_id) as active_customers,
|
|
71
|
+
DATEDIFF('month', cs.cohort_month, DATE_TRUNC('month', s.subscription_active_date)) as months_since_signup
|
|
72
|
+
FROM cohort_signups cs
|
|
73
|
+
JOIN subscriptions s ON s.customer_id = cs.customer_id
|
|
74
|
+
GROUP BY 1, 2
|
|
75
|
+
),
|
|
76
|
+
cohort_size AS (
|
|
77
|
+
SELECT cohort_month, COUNT(DISTINCT customer_id) as initial_size
|
|
78
|
+
FROM cohort_signups
|
|
79
|
+
GROUP BY 1
|
|
80
|
+
)
|
|
81
|
+
SELECT
|
|
82
|
+
cs.cohort_month,
|
|
83
|
+
cs.months_since_signup,
|
|
84
|
+
cs.active_customers,
|
|
85
|
+
cz.initial_size,
|
|
86
|
+
cs.active_customers::float / cz.initial_size as survival_rate
|
|
87
|
+
FROM cohort_survival cs
|
|
88
|
+
JOIN cohort_size cz USING (cohort_month)
|
|
89
|
+
ORDER BY cs.cohort_month, cs.months_since_signup;
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 3. PLG Onboarding Pattern — activation as the leading indicator
|
|
93
|
+
|
|
94
|
+
**Source:** [Lumi Studio — PLG Onboarding](https://www.lumi.studio/blog/a-guide-to-plg-onboarding) · [productled.org](https://www.productled.org/foundations/product-led-growth-metrics)
|
|
95
|
+
|
|
96
|
+
### Activation rate benchmarks
|
|
97
|
+
- **20-40% = OK** (depending on onboarding complexity)
|
|
98
|
+
- **>50% = excellent**
|
|
99
|
+
- Activation = % of signups who reach the aha moment (first valuable action)
|
|
100
|
+
|
|
101
|
+
### Day-7 retention is the leading indicator
|
|
102
|
+
- Do users who hit the aha moment come back?
|
|
103
|
+
- Day-7 retention is more predictive of month-12 retention than any single feature
|
|
104
|
+
- If aha-moment users don't return, the aha moment isn't actually valuable — it's a proxy metric
|
|
105
|
+
|
|
106
|
+
### The PLG funnel (defining each stage by behavior, not assumption)
|
|
107
|
+
|
|
108
|
+
| Stage | Definition | Benchmark |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| Stranger | Hasn't found us | — |
|
|
111
|
+
| Explorer | Visited landing | Website→signup 6-9% (freemium), 3-4% (trial) |
|
|
112
|
+
| Beginner | Signed up | — |
|
|
113
|
+
| Activated | Hit aha moment | 20-40% of signups |
|
|
114
|
+
| Regular | Habitual use | 60%+ of activated users by day 30 |
|
|
115
|
+
| Champion | Refers others | NPS ≥ 50 + 1+ referral |
|
|
116
|
+
|
|
117
|
+
### The activation playbook
|
|
118
|
+
1. **Define the aha moment behaviorally** — single action, measurable, time-bounded
|
|
119
|
+
2. **Measure baseline activation** for last 90-day cohort
|
|
120
|
+
3. **Identify drop-off points** before the aha moment (each is a fix candidate)
|
|
121
|
+
4. **Design ONE intervention** at the highest-drop step; A/B test
|
|
122
|
+
5. **Measure activation lift + day-7 retention lift** (both, not just activation)
|
|
123
|
+
6. **Iterate**
|
|
124
|
+
|
|
125
|
+
### Common aha-moment definitions
|
|
126
|
+
- Slack: 2,000 messages sent in a workspace
|
|
127
|
+
- Dropbox: 1 file uploaded + 1 device installed
|
|
128
|
+
- Hubspot: First contact imported + first email sent
|
|
129
|
+
- Stripe: First successful charge processed
|
|
130
|
+
|
|
131
|
+
## 4. PQL (Product Qualified Lead) — the PLG sales-handoff signal
|
|
132
|
+
|
|
133
|
+
### Three PQL metrics
|
|
134
|
+
1. **PQL count** over time
|
|
135
|
+
2. **PQL rate** (% of signups becoming PQL)
|
|
136
|
+
3. **PQL-to-paid conversion**
|
|
137
|
+
|
|
138
|
+
### PQL trigger criteria
|
|
139
|
+
- Feature adoption thresholds (e.g., used feature X ≥ 5 times)
|
|
140
|
+
- Usage caps approached (signals expansion need)
|
|
141
|
+
- Team expansion (multiple seats activated)
|
|
142
|
+
- Use-case depth signals (configured key integrations)
|
|
143
|
+
|
|
144
|
+
### When to hand off to sales
|
|
145
|
+
- PQL with team-expansion signal (multi-seat product) → expansion-focused outreach
|
|
146
|
+
- PQL approaching usage cap (usage-based pricing) → upgrade-focused outreach
|
|
147
|
+
- Free-tier user with enterprise-shaped usage pattern (compliance, audit needs) → upmarket-conversion outreach
|
|
148
|
+
|
|
149
|
+
## 5. NPS / CSAT / Health Score (signal weights)
|
|
150
|
+
|
|
151
|
+
### NPS (Net Promoter Score) — limited as churn predictor
|
|
152
|
+
- Asks "how likely to recommend, 0-10"
|
|
153
|
+
- Promoters (9-10) − Detractors (0-6) = NPS (range -100 to 100)
|
|
154
|
+
- **NPS is noisier than usage data** — use both, not just NPS
|
|
155
|
+
- Useful for: brand health, expansion potential
|
|
156
|
+
- Less useful for: churn prediction (a 9 today churns next month if usage drops)
|
|
157
|
+
|
|
158
|
+
### CSAT (Customer Satisfaction)
|
|
159
|
+
- Specific to interactions ("how satisfied with this support response, 1-5")
|
|
160
|
+
- Better signal than NPS for operational quality
|
|
161
|
+
|
|
162
|
+
### Health Score (composite)
|
|
163
|
+
The right model: weighted combination of:
|
|
164
|
+
- **Product usage** (depth, breadth, frequency) — 40% weight
|
|
165
|
+
- **Engagement** (logins, sessions, time-on-task) — 20% weight
|
|
166
|
+
- **Outcome metrics** (customer's KPI achievement, where measurable) — 20% weight
|
|
167
|
+
- **Survey signal** (NPS, CSAT, support sentiment) — 10% weight
|
|
168
|
+
- **Account context** (champion changes, executive sponsor, contract status) — 10% weight
|
|
169
|
+
|
|
170
|
+
### Health score thresholds
|
|
171
|
+
- **Green** (≥70) — expansion candidate
|
|
172
|
+
- **Yellow** (40-69) — standard cadence; monitor
|
|
173
|
+
- **Red** (<40) — escalate; CSM intervention; pre-renewal preparation
|
|
174
|
+
- **Auto-escalate** triggers: champion departure, usage drop >50% in 30 days, support escalation pattern
|
|
175
|
+
|
|
176
|
+
## 6. Renewal cycle (90-day window pattern)
|
|
177
|
+
|
|
178
|
+
### The discipline
|
|
179
|
+
**Renewals are won 90 days BEFORE the renewal date.** A renewal won in the renewal week is a coin flip; one won in the prior quarter is structural.
|
|
180
|
+
|
|
181
|
+
### 90-day pre-renewal playbook
|
|
182
|
+
- **T-90**: account review with CSM + AE; map champion + decision-maker; verify health score; identify expansion vector
|
|
183
|
+
- **T-60**: explicit value-recap with the champion; quantify outcomes; introduce expansion conversation if green
|
|
184
|
+
- **T-30**: contract redline conversation with decision-maker; pricing locked or escalation defined
|
|
185
|
+
- **T-14**: signature on renewal + expansion (if applicable)
|
|
186
|
+
- **T-0**: renewal lands; QBR scheduled for post-renewal
|
|
187
|
+
|
|
188
|
+
### Anti-patterns
|
|
189
|
+
- Starting renewal conversation in the renewal week (signals scramble)
|
|
190
|
+
- Discount-to-save (you're buying churn; structurally the relationship is already lost)
|
|
191
|
+
- Multi-stakeholder mismatch (champion sold us; finance kills us at renewal because never met them)
|
|
192
|
+
- Auto-renewal without explicit conversation (signals you're not paying attention; gives competitors entry)
|
|
193
|
+
|
|
194
|
+
## 7. Expansion / upsell / cross-sell (the silent revenue lever)
|
|
195
|
+
|
|
196
|
+
### Expansion shapes
|
|
197
|
+
- **Seat expansion** — same product, more users
|
|
198
|
+
- **Tier upgrade** — same users, more features (Pro → Enterprise)
|
|
199
|
+
- **Module / cross-sell** — adjacent product (Sales Cloud → Service Cloud)
|
|
200
|
+
- **Usage growth** — usage-based pricing tier crossing
|
|
201
|
+
|
|
202
|
+
### The math
|
|
203
|
+
A 110% gross retention business with 130% net retention has **2× the LTV** of a 110% gross / 110% net business at the same cost.
|
|
204
|
+
|
|
205
|
+
### Expansion playbook
|
|
206
|
+
1. **Identify expansion vector per cohort** — what does each ICP segment expand into?
|
|
207
|
+
2. **Trigger criteria** — usage-cap approach, team growth, champion promotion, integration adoption
|
|
208
|
+
3. **Pricing design** — make the expansion path visible in the product (paywall hints, lock icons, "request access")
|
|
209
|
+
4. **CSM compensation** — % of NRR > 100% = healthy comp design; flat $ on save = wrong incentive
|
|
210
|
+
|
|
211
|
+
### When NOT to push expansion
|
|
212
|
+
- Health score < 40 (you'll burn the relationship)
|
|
213
|
+
- Champion departed in last 30 days (rebuild trust first)
|
|
214
|
+
- Active escalation open (don't compound friction)
|
|
215
|
+
- Customer hasn't reached aha moment in current tier (premature)
|
|
216
|
+
|
|
217
|
+
## 8. Win-back campaigns (only fix the cause first)
|
|
218
|
+
|
|
219
|
+
### The win-back paradox
|
|
220
|
+
Win-back campaigns that don't fix the original churn cause produce churn-back — they re-acquire the same wrong-fit customer who churns again at higher cost.
|
|
221
|
+
|
|
222
|
+
### The win-back checklist
|
|
223
|
+
```markdown
|
|
224
|
+
- [ ] Original churn cause identified per §1 (wrong-fit / un-activated / life-cycle / competitor / price)
|
|
225
|
+
- [ ] Original cause fixed in product / pricing / onboarding (verified by current-cohort data)
|
|
226
|
+
- [ ] Time elapsed since churn ≥ 6 months (cooling-off)
|
|
227
|
+
- [ ] Customer was healthy before they churned (don't win-back wrong-fit)
|
|
228
|
+
- [ ] Win-back offer is value-based (new feature, new pricing tier, new use case) — NOT just discount
|
|
229
|
+
- [ ] Predictor: win-back cohort retention ≥ original cohort retention at same tenure
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Anti-patterns
|
|
233
|
+
- "We miss you" emails with discount — wrong-fit customers re-churn
|
|
234
|
+
- Win-back to churned competitor-loss customers without addressing why they left
|
|
235
|
+
- Bulk win-back to all churned (segment by cause first)
|
|
236
|
+
|
|
237
|
+
## 9. Escalation handling (turn detractors into advocates)
|
|
238
|
+
|
|
239
|
+
### The Sweet&Sour pattern (Reflexion-style for retention)
|
|
240
|
+
|
|
241
|
+
When a customer escalates:
|
|
242
|
+
1. **Sour first** — acknowledge the specific failure: "X happened, Y was the cost to you, here's what went wrong on our side"
|
|
243
|
+
2. **Investigate fully** — root cause; not just the symptom
|
|
244
|
+
3. **Make it right disproportionately** — refund + future credit + named owner of fix + commitment to update them
|
|
245
|
+
4. **Sweet** — once resolved, follow up to verify resolution + invite them to be a reference
|
|
246
|
+
|
|
247
|
+
### The data
|
|
248
|
+
A customer whose escalation is handled well becomes more loyal than one who never had an issue (the "service recovery paradox"). But only if handled well — half-handled escalations create permanent detractors.
|
|
249
|
+
|
|
250
|
+
### Anti-patterns
|
|
251
|
+
- Defensive responses that explain why we did the right thing
|
|
252
|
+
- Half-refunds that signal "we're admitting partial fault"
|
|
253
|
+
- Generic "thank you for your feedback" with no concrete fix
|
|
254
|
+
- No follow-up after resolution
|
|
255
|
+
|
|
256
|
+
## 10. Retention audit checklist (paste-ready)
|
|
257
|
+
|
|
258
|
+
```markdown
|
|
259
|
+
- [ ] Churn decomposed by cause (not lumped as one number)
|
|
260
|
+
- [ ] Cohort decay curves computed (not flat churn assumption)
|
|
261
|
+
- [ ] NRR + GRR computed at cohort level
|
|
262
|
+
- [ ] Activation rate measured + benchmarked (20-40% OK, 50%+ excellent)
|
|
263
|
+
- [ ] Day-7 retention measured for activated cohort
|
|
264
|
+
- [ ] Health score model defined; green/yellow/red thresholds
|
|
265
|
+
- [ ] Pre-renewal playbook in place (T-90, T-60, T-30, T-14)
|
|
266
|
+
- [ ] Expansion vector identified per ICP segment
|
|
267
|
+
- [ ] CSM compensation aligned to NRR > 100% (not flat $)
|
|
268
|
+
- [ ] Win-back conditions defined (cause fixed + cooling-off + value offer)
|
|
269
|
+
- [ ] Coach-kernel write with `risk_class: 'retention_action'` + cohort predicate
|
|
270
|
+
- [ ] Recovery contract gateType: advisory (recovery, not block)
|
|
271
|
+
```
|