Memory Rule Clusters — Decision-Time Consultation Map
This hub is the authoritative aggregator of all 92 feedback rules in /home/opsadmin/.claude/projects/-home-opsadmin/memory/, organized into the 11 Decision-Time Consultation Map clusters defined in MEMORY.md. Read the relevant cluster before acting, asking, or writing code. Rules are incident-derived (tagged incident_derived: true in frontmatter) and MUST live above MEMORY.md line 150 per feedback_memory_fold_protection.
Quick reference
| Field | Value |
|---|---|
| Gate ID | G-MEMORY-FOLD-PROTECTION |
| CLAUDE.md section | §Cascade-Failure Gates, G-MEMORY-FOLD-PROTECTION |
| Enforcement mode | memory-load (auto-loaded via on-session-start.sh) |
| Validator script | n/a |
| Discord alert | yes:#ops (on incident recurrence) |
| Feedback rules | feedback_memory_fold_protection, feedback_blocker_surfacing |
| Incidents derived from | oomd-cascade-2026-05-01, vault-leak-2026-05-03, aurora-soul-overwrite-2026-04-16, 374-dup-sms, 9870-wrong-inbox |
| Violable by | Claude, agent |
| Last known violation | 2026-05-03 (vault-leak from plaintext creds in synced plans) |
| Amendment | §A1 2026-05-01 |
| Phase status | active |
| Last audit | 2026-05-03 |
Cluster 1 — Before asking Henry any question
Trigger: Any time Claude is about to surface a question, request, or blocker to Henry.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_question_discipline | Do not ask questions that can be answered by reading existing files or logs | memory-load |
| feedback_check_resources_before_asking | GREP/read existing memory, plans, and KB docs BEFORE forming a question | memory-load |
| feedback_options_listed_vertically | When presenting options, list A/B/C vertically with trade-offs — never inline | memory-load |
Rule count: 3
Cluster 2 — Before asking Henry for any API key / credential
Trigger: Any time Claude needs a credential, token, or API key.
| Rule | Summary | Enforcement |
|---|---|---|
| reference_1password_op_access | op CLI auth via OP_SERVICE_ACCOUNT_TOKEN; vault=Aurora; use op://Aurora/<item>/<field> | memory-load |
| reference_hetzner_credentials_1p | Hetzner web login + Cloud API token in vault Aurora — never ask Henry to paste in chat | memory-load |
Rule count: 2
Gate: This cluster enforces feedback_no_plaintext_creds (G-NO-PLAINTEXT-CREDS). See also Cluster 7.
Cluster 3 — Before claiming “X exists/doesn’t exist/works/is broken”
Trigger: Any factual claim about system state, API behavior, file existence, or service health.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_no_assumptions | Never assume a file, table, service, or field exists without checking live state | memory-load |
| feedback_never_assumptive_audit | Run actual commands to verify; never audit from memory alone | memory-load |
| feedback_audit_before_architect | Check what exists before proposing new architecture | memory-load |
| feedback_live_over_memory | Live API/service state always overrides cached memory when in conflict | memory-load |
| feedback_tier_0_first_before_amendments | Run Phase 0 audit before any plan amendment — verify current state first | memory-load |
| feedback_source_master_env_before_checking | Check master.env (111+ vars, 19 sections) before claiming a credential is missing | memory-load |
| feedback_systemctl_cat_before_env_claims | Run systemctl cat <unit> before claiming a service has no env vars | memory-load |
| feedback_sshd_client_timeout_vs_vps_stress | SSH timeout ≠ VPS crash; distinguish client disconnect from server stress | memory-load |
| feedback_macos_firewall_blocks_tailscaled | macOS firewall blocks tailscaled socket; check firewall before assuming Tailscale is broken | memory-load |
Rule count: 9 (+ Skill: audit-before-architecting)
Cluster 4 — Before any plan amendment / status claim / canonicalization
Trigger: Before amending a plan, claiming a phase is done, or declaring a file canonical.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_tier_0_first_before_amendments | Phase 0 audit before amending any plan — verify current state is as assumed | memory-load |
| feedback_plan_status_inline_and_verify | Plan status must be inline AND verified via live commands, not inferred | memory-load |
| feedback_plan_amendments_additive | Amendments are additive only — never overwrite prior decisions or phases | memory-load |
| feedback_post_audit_persistence | After completing an audit, persist findings before ending session | memory-load |
| feedback_plan_completeness_gate | All plan phases must have exit criteria, rollback steps, and verification commands | memory-load |
| feedback_visual_map_required | Any plan touching ≥3 subsystems requires a visual map (Mermaid or Canvas) | memory-load |
| feedback_pre_build_index_verification | Before creating any new file, verify it does not already exist (search first) | memory-load |
Rule count: 7
Cluster 5 — Before claiming “X has no Y dependency” or scoping a change
Trigger: Before scoping a change, claiming independence, or estimating impact radius.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_full_data_pipeline_trace | Trace the full data pipeline (ingest → transform → store → serve) before any change | memory-load |
| feedback_reread_code_before_scoping_edits | Re-read the actual file before estimating edit scope — never estimate from memory | memory-load |
| feedback_verify_schema_before_designing | Check actual Supabase schema (CHOKEPOINT-1 tables) before designing new writes | memory-load |
| feedback_chokepoint_principle | All state mutations route through CHOKEPOINT-1/2/3 — no silent side-channel writes | memory-load |
| feedback_completeness_map_required | Every scope change requires a completeness map showing what is and isn’t covered | memory-load |
| feedback_cost_root_required | Every cost change must trace to root cause before recommending a fix | memory-load |
| feedback_dual_write_required | Any write to Supabase must also write the corresponding audit/log row | memory-load |
Rule count: 7
Cluster 6 — Before any side-effect action (write / delete / restart / config / outbound)
Trigger: Before any action that changes system state: file writes, deletes, service restarts, config changes, or outbound API calls with side effects.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_action_gate_violation_repeated | Service restarts and file writes require explicit Henry authorization per session | memory-load |
| feedback_probe_before_execute | Run a dry-run or read probe before any destructive or stateful command | memory-load |
| feedback_time_boxed_confirm | State intended action + wait for confirmation before executing side-effects | memory-load |
| feedback_scope_echo_required | Echo the scope of what will be changed before executing | memory-load |
| feedback_never_send_without_auth | Never send SMS, email, or outbound message without explicit per-send authorization | memory-load |
| feedback_archive_not_delete | Archive files and configs instead of deleting — keeps audit trail intact | memory-load |
| feedback_cloudflare_plan_before_execute | Any Cloudflare change (Tunnel, WAF, DNS) requires a written plan reviewed first | memory-load |
| feedback_tailscale_serve_strict_approval | Tailscale Funnel changes require explicit approval + FUNNEL-REGISTRY.md update | memory-load |
| feedback_user_slice_cap_pattern | Cap user-1001.slice AND user@1001.service together — one without the other is incomplete | memory-load |
| feedback_substrate_right_size_to_working_set | Right-size infrastructure to actual working set, not aspirational load | memory-load |
Rule count: 10
Cluster 7 — Before any credential touch
Trigger: Before reading, writing, rotating, or referencing any credential, token, secret, or API key.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_credentials_in_chat | Never paste credentials in chat — always use op://Aurora/<item>/<field> references | memory-load |
| feedback_credential_pipe_required | Pipe credentials through env var or op:// — never inline in script arguments | memory-load |
| feedback_credentials_via_1password_cli | All credentials fetched via op CLI; OP_SERVICE_ACCOUNT_TOKEN required | memory-load |
| feedback_credentials_repeat_exposure | After any credential appears in context, immediately redact and rotate | memory-load |
| feedback_always_redact_grep_output | Redact grep output before sharing if it might match API keys or tokens | memory-load |
| feedback_no_plaintext_creds | Zero plaintext creds in any tracked file — G-NO-PLAINTEXT-CREDS hard stop | memory-load |
Rule count: 6
Gate: G-NO-PLAINTEXT-CREDS. Violations must be reported to ops immediately. See 1password for op:// pattern.
Cluster 8 — Before writing or editing a memory/feedback file
Trigger: Before creating a new feedback_*.md rule or editing an existing one.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_check_resources_before_asking | GREP existing memory first — does a similar rule already exist? | memory-load |
| feedback_archive_not_delete | Archive old rules instead of deleting; append _deprecated suffix | memory-load |
| feedback_memory_fold_protection | Incident-derived rules MUST live above MEMORY.md line 150 | memory-load |
Rule count: 3 (+ meta: check Decision-Time Consultation Map for cluster fit)
Cluster 9 — Before completing / closing any phase or audit
Trigger: Before marking a phase complete, closing a plan, or ending a session.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_no_partial_completion | Never mark a phase complete with known gaps — document them explicitly | memory-load |
| feedback_post_audit_persistence | Persist all audit findings before the session ends | memory-load |
| feedback_heartbeat_discipline | Write SESSION-AUDIT.md and bridge file before stopping | memory-load |
| feedback_blocker_surfacing | Mirror all open blockers from plan files to SESSION-AUDIT.md NEXT ACTIONS | memory-load |
Rule count: 4
Gate: G-BLOCKER-SURFACING. Plan-level blockers hidden from SESSION-AUDIT are a governance violation.
Cluster 10 — Before model dispatch / planning vs execution
Trigger: Before dispatching any subagent or deciding which model handles a task.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_model_routing_pattern | Opus plans/audits (main); Sonnet executes via 8-element dispatch prompt; Haiku trivial lookups only | memory-load |
Rule count: 1 (but 8-element Sonnet dispatch prompt is the key enforcement surface)
Source: /home/opsadmin/.claude/projects/-home-opsadmin/memory/feedback_model_routing_pattern.md
Cluster 11 — During long-running async waits or context-tight sessions
Trigger: Mid-session when waiting on a background process, approaching context limit, or facing a long-running async operation.
| Rule | Summary | Enforcement |
|---|---|---|
| feedback_proactive_parallel_prep | During async waits, prepare next steps in parallel — don’t idle | memory-load |
| feedback_save_state_before_context_limit | At 80% context capacity, write bridge file + SESSION-AUDIT update before compacting | memory-load |
| feedback_push_through_to_completion | Prefer completing a phase over stopping mid-way; incomplete work accumulates drift | memory-load |
Rule count: 3
Cluster 12 — Cascade-failure gates (Amendment §A1, 2026-05-01)
Trigger: Any time a new plan is created, a new KB dir is added, a service is started, or governance files go stale. These 8 gates are directly incident-derived.
| Rule | Gate | Incident Origin | Enforcement |
|---|---|---|---|
| feedback_plan_index_required | G-PLAN-INDEX-REQUIRED | 89% orphan-plan rate (Binance/EU plan loss) | manual |
| feedback_memory_fold_protection | G-MEMORY-FOLD-PROTECTION | Rules invisible below fold caused 9870 wrong-inbox + 374-dup-SMS + Aurora SOUL overwrite | memory-load |
| feedback_blocker_surfacing | G-BLOCKER-SURFACING | 47 hidden blockers across 32 plans silently dormant | manual |
| feedback_no_plaintext_creds | G-NO-PLAINTEXT-CREDS | TOOLS.md 15+ plaintext production secrets in rw-rw-r— file 24+ days | memory-load |
| feedback_service_pre_start_doc | G-SERVICE-PRE-START-DOC | 23 undocumented live services causing conflicts | manual |
| feedback_kb_sync_with_claude_md | G-KB-SYNC-WITH-CLAUDEMD | 51% KB docs invisible to Sources First protocol | manual |
| feedback_governance_log_freshness | G-GOVERNANCE-LOG-FRESHNESS | CHANGELOG 72d stale, WORKFLOW-PATTERNS 44d stale | cron |
| feedback_failed_service_mttr | G-FAILED-SERVICE-MTTR | Silent-failed services masking live data outages | cron |
Rule count: 8
Amendment: §A1 2026-05-01 in openclaw-fragmentation-fix-2026-05-01.md. Full enforcement cron ships in Phase 2.
Cluster 13 — Domain-specific rules (consult when working in that domain)
These rules are organized by domain. Scan the relevant sub-cluster when entering that domain.
Aurora agent behavior
| Rule | Summary |
|---|---|
| feedback_agent_identity_first | Read SOUL.md before proposing any agent change |
| feedback_aurora_outbound_guardrails | Aurora outbound message guardrails — never bypass |
| feedback_aurora_slack_behavior | Aurora Slack posting behavior constraints |
| feedback_quo_lineid_required | Quo dispatch requires explicit line_id — never omit |
| feedback_never_use_henry_name | Never use “Henry” in agent-facing messages |
Local LLM (M1 Ultra / Ollama)
| Rule | Summary |
|---|---|
| feedback_mlx_coreml_rejected | MLX/CoreML rejected for production — Ollama only |
| feedback_kv_quant_num_ctx_pairing | KV cache quant paired with num_ctx for memory safety |
| feedback_mmap_paging_sparse_moe | MMap paging strategy for sparse MoE models |
| feedback_16_item_optimization_triage | 16-item triage before any Ollama optimization |
| feedback_rag_context_gap_in_bench | RAG context gap in benchmark interpretation |
Plan governance
| Rule | Summary |
|---|---|
| feedback_plan_governance_standard | Universal plan governance standard (phases, exit criteria, rollback) |
| feedback_plan_labels_required | All plans require status + priority labels |
| feedback_universal_execution_rules | Universal execution rules apply to all plan phases |
| feedback_gsd_midphase_workflow | GSD mid-phase workflow for context handoffs |
| feedback_system_audit_format | Default 10-section system audit output format |
| feedback_skill_trigger_registry | Skill trigger registry — auto-invoke on keyword match |
SalesMsg / SMS
| Rule | Summary |
|---|---|
| feedback_salesmsg_api_first | Check SalesMsg API before writing any SMS code |
| feedback_salesmsg_mention_syntax | SalesMsg @mention syntax — agent tagging protocol |
| feedback_blast_inbox_required | Blast operations require inbox selection |
| feedback_sms_160_char_at_scale | SMS 160-char limit critical at scale — enforce always |
Trading / betting
| Rule | Summary |
|---|---|
| feedback_event_driven_architecture | Event-driven architecture for trading/betting data |
| feedback_live_event_betting_workflow | Live event betting workflow constraints |
| feedback_polymarket_fee_structure | Polymarket fee structure — LP vs market-order |
Email / messages
| Rule | Summary |
|---|---|
| feedback_email_formatting | Email formatting standards for TC comms |
| feedback_no_em_dash | No em dash in agent messages (parsing hazard) |
| feedback_em_dash_section_dividers_ok | Em dash OK as section divider in documentation |
Data
| Rule | Summary |
|---|---|
| feedback_supabase_pagination | All Supabase queries must paginate — default limit=1000 |
| feedback_master_env_export_pattern | master.env export pattern — source correctly in scripts |
| feedback_dispo_scorer_rules | Dispo deal scoring rules — weights and thresholds |
InvestorLift
| Rule | Summary |
|---|---|
| feedback_il_enrichment_runs_on_mac_ultra | IL enrichment runs on EC2 Mac Ultra only — VPS is 403’d |
| feedback_il_acq_negotiation_mindset | IL acquisition negotiation mindset — wholesale framing |
| feedback_il_contact_precedence_rule | IL contact precedence rule — owner > listing agent |
| feedback_il_dispo_price_formula | IL dispo price formula — ARV-based calculation |
Acquisitions behavioral
| Rule | Summary |
|---|---|
| feedback_acq_no_pass_and_pivot | Never “pass and pivot” in acquisitions — commit to position |
| feedback_acq_thread_history_aware_gates | Acquisitions thread history gates before re-engagement |
| feedback_acq_mentor_voice_cadence | Acquisitions mentor voice + cadence constraints |
AI architecture
| Rule | Summary |
|---|---|
| feedback_ai_native_interaction_architecture | CRITICAL Henry directive 2026-04-29 — all agent interactions must be AI-native |
Agent infra
| Rule | Summary |
|---|---|
| feedback_models_guardian_pattern | agent models.json overwritten by gateway on restart — edit models-backups/ instead |
Dispo SMS / buyer comms
| Rule | Summary |
|---|---|
| feedback_dispo_sip_vs_tenant | Dispo SIP vs tenant SMS routing — separate channels |
Domain-specific rule count: 37
Feedback rule inventory (full — all 92 rules cross-referenced)
| Rule | Cluster | Enforcement | Last fire / Notes |
|---|---|---|---|
| feedback_question_discipline | 1-Before asking Henry | memory-load | Ask only what can’t be self-answered |
| feedback_check_resources_before_asking | 1-Before asking Henry / 8-Before writing memory | memory-load | Dual-cluster |
| feedback_options_listed_vertically | 1-Before asking Henry | memory-load | A/B/C vertical format |
| reference_1password_op_access | 2-Before asking for credentials | memory-load | op:// pattern anchor |
| reference_hetzner_credentials_1p | 2-Before asking for credentials | memory-load | Hetzner vault ref |
| feedback_no_assumptions | 3-Before claiming X | memory-load | — |
| feedback_never_assumptive_audit | 3-Before claiming X | memory-load | incident_derived |
| feedback_audit_before_architect | 3-Before claiming X | memory-load | — |
| feedback_live_over_memory | 3-Before claiming X | memory-load | — |
| feedback_tier_0_first_before_amendments | 3-Before claiming X / 4-Before plan amendment | memory-load | Dual-cluster |
| feedback_source_master_env_before_checking | 3-Before claiming X | memory-load | — |
| feedback_systemctl_cat_before_env_claims | 3-Before claiming X | memory-load | — |
| feedback_sshd_client_timeout_vs_vps_stress | 3-Before claiming X | memory-load | — |
| feedback_macos_firewall_blocks_tailscaled | 3-Before claiming X | memory-load | — |
| feedback_plan_status_inline_and_verify | 4-Before plan amendment | memory-load | — |
| feedback_plan_amendments_additive | 4-Before plan amendment | memory-load | incident_derived |
| feedback_post_audit_persistence | 4-Before plan amendment / 9-Before completing phase | memory-load | Dual-cluster |
| feedback_plan_completeness_gate | 4-Before plan amendment | memory-load | — |
| feedback_visual_map_required | 4-Before plan amendment | memory-load | — |
| feedback_pre_build_index_verification | 4-Before plan amendment | memory-load | — |
| feedback_full_data_pipeline_trace | 5-Before scoping change | memory-load | — |
| feedback_reread_code_before_scoping_edits | 5-Before scoping change | memory-load | — |
| feedback_verify_schema_before_designing | 5-Before scoping change | memory-load | — |
| feedback_chokepoint_principle | 5-Before scoping change | memory-load | G-CHOKEPOINT |
| feedback_completeness_map_required | 5-Before scoping change | memory-load | — |
| feedback_cost_root_required | 5-Before scoping change | memory-load | — |
| feedback_dual_write_required | 5-Before scoping change | memory-load | G-DUAL-WRITE |
| feedback_action_gate_violation_repeated | 6-Before side-effect | memory-load | incident_derived |
| feedback_probe_before_execute | 6-Before side-effect | memory-load | — |
| feedback_time_boxed_confirm | 6-Before side-effect | memory-load | — |
| feedback_scope_echo_required | 6-Before side-effect | memory-load | — |
| feedback_never_send_without_auth | 6-Before side-effect | memory-load | incident_derived: 374-dup-sms |
| feedback_archive_not_delete | 6-Before side-effect / 8-Before writing memory | memory-load | Dual-cluster |
| feedback_cloudflare_plan_before_execute | 6-Before side-effect | memory-load | — |
| feedback_tailscale_serve_strict_approval | 6-Before side-effect | memory-load | — |
| feedback_user_slice_cap_pattern | 6-Before side-effect | memory-load | incident_derived: oomd-cascade |
| feedback_substrate_right_size_to_working_set | 6-Before side-effect | memory-load | incident_derived: oomd-cascade |
| feedback_credentials_in_chat | 7-Before credential touch | memory-load | incident_derived |
| feedback_credential_pipe_required | 7-Before credential touch | memory-load | — |
| feedback_credentials_via_1password_cli | 7-Before credential touch | memory-load | — |
| feedback_credentials_repeat_exposure | 7-Before credential touch | memory-load | incident_derived |
| feedback_always_redact_grep_output | 7-Before credential touch | memory-load | — |
| feedback_no_plaintext_creds | 7-Before credential touch / 12-Cascade gates | memory-load | G-NO-PLAINTEXT-CREDS |
| feedback_memory_fold_protection | 8-Before writing memory / 12-Cascade gates | memory-load | G-MEMORY-FOLD-PROTECTION |
| feedback_no_partial_completion | 9-Before completing phase | memory-load | — |
| feedback_heartbeat_discipline | 9-Before completing phase | memory-load | — |
| feedback_blocker_surfacing | 9-Before completing phase / 12-Cascade gates | memory-load | G-BLOCKER-SURFACING |
| feedback_model_routing_pattern | 10-Before model dispatch | memory-load | Opus/Sonnet/Haiku split |
| feedback_proactive_parallel_prep | 11-Long-running waits | memory-load | — |
| feedback_save_state_before_context_limit | 11-Long-running waits | memory-load | — |
| feedback_push_through_to_completion | 11-Long-running waits | memory-load | — |
| feedback_plan_index_required | 12-Cascade gates | manual | G-PLAN-INDEX-REQUIRED |
| feedback_service_pre_start_doc | 12-Cascade gates | manual | G-SERVICE-PRE-START-DOC |
| feedback_kb_sync_with_claude_md | 12-Cascade gates | manual | G-KB-SYNC-WITH-CLAUDEMD |
| feedback_governance_log_freshness | 12-Cascade gates | cron | G-GOVERNANCE-LOG-FRESHNESS |
| feedback_failed_service_mttr | 12-Cascade gates | cron | G-FAILED-SERVICE-MTTR |
| feedback_agent_identity_first | 13-Domain: Aurora | memory-load | incident_derived: soul-overwrite |
| feedback_aurora_outbound_guardrails | 13-Domain: Aurora | memory-load | — |
| feedback_aurora_slack_behavior | 13-Domain: Aurora | memory-load | — |
| feedback_quo_lineid_required | 13-Domain: Aurora | memory-load | — |
| feedback_never_use_henry_name | 13-Domain: Aurora | memory-load | — |
| feedback_mlx_coreml_rejected | 13-Domain: Local LLM | memory-load | — |
| feedback_kv_quant_num_ctx_pairing | 13-Domain: Local LLM | memory-load | — |
| feedback_mmap_paging_sparse_moe | 13-Domain: Local LLM | memory-load | — |
| feedback_16_item_optimization_triage | 13-Domain: Local LLM | memory-load | — |
| feedback_rag_context_gap_in_bench | 13-Domain: Local LLM | memory-load | — |
| feedback_plan_governance_standard | 13-Domain: Plan governance | memory-load | — |
| feedback_plan_labels_required | 13-Domain: Plan governance | memory-load | — |
| feedback_universal_execution_rules | 13-Domain: Plan governance | memory-load | — |
| feedback_gsd_midphase_workflow | 13-Domain: Plan governance | memory-load | — |
| feedback_system_audit_format | 13-Domain: Plan governance | memory-load | — |
| feedback_skill_trigger_registry | 13-Domain: Plan governance | memory-load | — |
| feedback_salesmsg_api_first | 13-Domain: SalesMsg | memory-load | — |
| feedback_salesmsg_mention_syntax | 13-Domain: SalesMsg | memory-load | — |
| feedback_blast_inbox_required | 13-Domain: SalesMsg | memory-load | incident_derived: 374-dup-sms |
| feedback_sms_160_char_at_scale | 13-Domain: SalesMsg | memory-load | — |
| feedback_event_driven_architecture | 13-Domain: Trading | memory-load | — |
| feedback_live_event_betting_workflow | 13-Domain: Trading | memory-load | — |
| feedback_polymarket_fee_structure | 13-Domain: Trading | memory-load | — |
| feedback_email_formatting | 13-Domain: Email | memory-load | — |
| feedback_no_em_dash | 13-Domain: Email | memory-load | — |
| feedback_em_dash_section_dividers_ok | 13-Domain: Email | memory-load | — |
| feedback_supabase_pagination | 13-Domain: Data | memory-load | — |
| feedback_master_env_export_pattern | 13-Domain: Data | memory-load | — |
| feedback_dispo_scorer_rules | 13-Domain: Data | memory-load | — |
| feedback_il_enrichment_runs_on_mac_ultra | 13-Domain: InvestorLift | memory-load | — |
| feedback_il_acq_negotiation_mindset | 13-Domain: InvestorLift | memory-load | — |
| feedback_il_contact_precedence_rule | 13-Domain: InvestorLift | memory-load | — |
| feedback_il_dispo_price_formula | 13-Domain: InvestorLift | memory-load | — |
| feedback_acq_no_pass_and_pivot | 13-Domain: Acquisitions | memory-load | — |
| feedback_acq_thread_history_aware_gates | 13-Domain: Acquisitions | memory-load | — |
| feedback_acq_mentor_voice_cadence | 13-Domain: Acquisitions | memory-load | — |
| feedback_ai_native_interaction_architecture | 13-Domain: AI arch | memory-load | incident_derived: 2026-04-29 |
| feedback_models_guardian_pattern | 13-Domain: Agent infra | memory-load | — |
| feedback_dispo_sip_vs_tenant | 13-Domain: Dispo SMS | memory-load | — |
| feedback_obsidian_sync_external_changes_unreliable | 13-Domain: Vault/Obsidian | memory-load | incident_derived |
Total rules catalogued: 92 (55 primary clusters + 37 domain-specific)
Components
~/.claude/projects/-home-opsadmin/memory/MEMORY.md— Decision-Time Consultation Map source (lines 39-88)~/.claude/projects/-home-opsadmin/memory/SAFETY-RAILS.md— ~30 incident-derived rules, auto-loaded~/.claude/projects/-home-opsadmin/memory/feedback_*.md— 92 individual rule files/home/opsadmin/.openclaw/workspace/CLAUDE.md— §Cascade-Failure Gates (G-MEMORY-FOLD-PROTECTION master spec)/home/opsadmin/.openclaw/tools/hooks/on-session-start.sh— auto-loads SAFETY-RAILS + MEMORY at session start
How it’s used
- Trigger: Claude scans the relevant cluster map BEFORE acting, asking, or writing code
- Workflow: Match the incoming action type to the cluster → scan all rules in that cluster → self-check compliance → proceed or escalate
- Agents involved: All 42 active agents (rules apply fleet-wide); Aurora has additional domain-specific cluster
- Failure mode: Rules invisible below MEMORY.md fold — G-MEMORY-FOLD-PROTECTION requires incident-derived rules above line 150
- Success criteria: Zero incident recurrence traceable to a rule that exists but was invisible or skipped
Cross-links
Governance hubs that own specific clusters
- g-gates-network — owns Cluster 12 (all 8 cascade-failure gates)
- action-gate — owns Cluster 6 (side-effect authorization)
- sources-first — owns Cluster 3 (before claiming X)
- blockers-first — owns Cluster 9 (before completing phase)
- plan-governance — owns Cluster 4 (before plan amendment)
Integration hubs enforced by these clusters
- 1password — Clusters 2 and 7 (credential layer anchor)
- supabase — Cluster 5 (schema + CHOKEPOINT writes)
- portkey — Cluster 10 (model routing — CHOKEPOINT-1)
- cloudflare — Cluster 6 (cloudflare plan before execute)
- salesmsg — Cluster 13 domain: SalesMsg
- investorlift — Cluster 13 domain: InvestorLift
Plans that govern this
- openclaw-fragmentation-fix-2026-05-01 — Amendment §A1: Cascade-failure gates origin
- openclaw-self-improvement-layer-2026-05-03 — B4 skill mutation governance
System maps
- governance-gates-network — visual map of all 8 gates
- agents-tier-structure — agent fleet subject to these rules
Open issues / TODOs
- Phase 1.7 of fragmentation-fix promised 22 gates; only 8+2 (G-CHOKEPOINT+G-DUAL-WRITE) in CLAUDE.md. Remaining 12 pending.
- G-GOVERNANCE-LOG-FRESHNESS + G-FAILED-SERVICE-MTTR enforcement crons ship in Phase 2 (not yet live)
feedback_obsidian_sync_external_changes_unreliable.mdnot yet in MEMORY.md Decision-Time Map — candidate for Cluster 3
Related historical hubs
- incident-timeline — historical anchor for all incident-derived rules
Recent activity
- 2026-05-04: incident-timeline hub created (incident-timeline) — all incident-derived feedback rules now have historical anchor
- 2026-05-03: hub created by W2-S2 (Wave 2 governance reference batch)