oh-my-claudecode 0.1.4 → 0.2.1
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/LICENSE +21 -0
- package/README.md +303 -135
- package/bin/yith-mcp.js +5 -0
- package/commands/cthulhu.md +2 -0
- package/dist/agents/cthulhu.d.ts.map +1 -1
- package/dist/agents/cthulhu.js +7 -0
- package/dist/agents/cthulhu.js.map +1 -1
- package/dist/cli/doctor.d.ts +7 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +120 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.js +7 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/install.d.ts.map +1 -1
- package/dist/cli/install.js +173 -0
- package/dist/cli/install.js.map +1 -1
- package/dist/config/schema.d.ts +4 -4
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/features/block-summarizer/index.d.ts +51 -0
- package/dist/features/block-summarizer/index.d.ts.map +1 -0
- package/dist/features/block-summarizer/index.js +136 -0
- package/dist/features/block-summarizer/index.js.map +1 -0
- package/dist/features/yith-archive/config.d.ts +20 -0
- package/dist/features/yith-archive/config.d.ts.map +1 -0
- package/dist/features/yith-archive/config.js +194 -0
- package/dist/features/yith-archive/config.js.map +1 -0
- package/dist/features/yith-archive/eval/metrics-store.d.ts +12 -0
- package/dist/features/yith-archive/eval/metrics-store.d.ts.map +1 -0
- package/dist/features/yith-archive/eval/metrics-store.js +56 -0
- package/dist/features/yith-archive/eval/metrics-store.js.map +1 -0
- package/dist/features/yith-archive/eval/quality.d.ts +17 -0
- package/dist/features/yith-archive/eval/quality.d.ts.map +1 -0
- package/dist/features/yith-archive/eval/quality.js +54 -0
- package/dist/features/yith-archive/eval/quality.js.map +1 -0
- package/dist/features/yith-archive/eval/schemas.d.ts +225 -0
- package/dist/features/yith-archive/eval/schemas.d.ts.map +1 -0
- package/dist/features/yith-archive/eval/schemas.js +111 -0
- package/dist/features/yith-archive/eval/schemas.js.map +1 -0
- package/dist/features/yith-archive/eval/self-correct.d.ts +9 -0
- package/dist/features/yith-archive/eval/self-correct.d.ts.map +1 -0
- package/dist/features/yith-archive/eval/self-correct.js +17 -0
- package/dist/features/yith-archive/eval/self-correct.js.map +1 -0
- package/dist/features/yith-archive/eval/validator.d.ts +17 -0
- package/dist/features/yith-archive/eval/validator.d.ts.map +1 -0
- package/dist/features/yith-archive/eval/validator.js +20 -0
- package/dist/features/yith-archive/eval/validator.js.map +1 -0
- package/dist/features/yith-archive/functions/actions.d.ts +4 -0
- package/dist/features/yith-archive/functions/actions.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/actions.js +198 -0
- package/dist/features/yith-archive/functions/actions.js.map +1 -0
- package/dist/features/yith-archive/functions/audit.d.ts +10 -0
- package/dist/features/yith-archive/functions/audit.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/audit.js +38 -0
- package/dist/features/yith-archive/functions/audit.js.map +1 -0
- package/dist/features/yith-archive/functions/auto-forget.d.ts +4 -0
- package/dist/features/yith-archive/functions/auto-forget.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/auto-forget.js +130 -0
- package/dist/features/yith-archive/functions/auto-forget.js.map +1 -0
- package/dist/features/yith-archive/functions/cascade.d.ts +4 -0
- package/dist/features/yith-archive/functions/cascade.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/cascade.js +66 -0
- package/dist/features/yith-archive/functions/cascade.js.map +1 -0
- package/dist/features/yith-archive/functions/checkpoints.d.ts +4 -0
- package/dist/features/yith-archive/functions/checkpoints.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/checkpoints.js +146 -0
- package/dist/features/yith-archive/functions/checkpoints.js.map +1 -0
- package/dist/features/yith-archive/functions/compress.d.ts +13 -0
- package/dist/features/yith-archive/functions/compress.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/compress.js +260 -0
- package/dist/features/yith-archive/functions/compress.js.map +1 -0
- package/dist/features/yith-archive/functions/consolidate.d.ts +16 -0
- package/dist/features/yith-archive/functions/consolidate.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/consolidate.js +378 -0
- package/dist/features/yith-archive/functions/consolidate.js.map +1 -0
- package/dist/features/yith-archive/functions/consolidation-pipeline.d.ts +26 -0
- package/dist/features/yith-archive/functions/consolidation-pipeline.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/consolidation-pipeline.js +730 -0
- package/dist/features/yith-archive/functions/consolidation-pipeline.js.map +1 -0
- package/dist/features/yith-archive/functions/context.d.ts +4 -0
- package/dist/features/yith-archive/functions/context.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/context.js +121 -0
- package/dist/features/yith-archive/functions/context.js.map +1 -0
- package/dist/features/yith-archive/functions/crystallize.d.ts +25 -0
- package/dist/features/yith-archive/functions/crystallize.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/crystallize.js +341 -0
- package/dist/features/yith-archive/functions/crystallize.js.map +1 -0
- package/dist/features/yith-archive/functions/dedup.d.ts +12 -0
- package/dist/features/yith-archive/functions/dedup.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/dedup.js +45 -0
- package/dist/features/yith-archive/functions/dedup.js.map +1 -0
- package/dist/features/yith-archive/functions/diagnostics.d.ts +4 -0
- package/dist/features/yith-archive/functions/diagnostics.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/diagnostics.js +619 -0
- package/dist/features/yith-archive/functions/diagnostics.js.map +1 -0
- package/dist/features/yith-archive/functions/enrich.d.ts +4 -0
- package/dist/features/yith-archive/functions/enrich.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/enrich.js +85 -0
- package/dist/features/yith-archive/functions/enrich.js.map +1 -0
- package/dist/features/yith-archive/functions/evict.d.ts +4 -0
- package/dist/features/yith-archive/functions/evict.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/evict.js +116 -0
- package/dist/features/yith-archive/functions/evict.js.map +1 -0
- package/dist/features/yith-archive/functions/export-import.d.ts +4 -0
- package/dist/features/yith-archive/functions/export-import.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/export-import.js +497 -0
- package/dist/features/yith-archive/functions/export-import.js.map +1 -0
- package/dist/features/yith-archive/functions/facets.d.ts +4 -0
- package/dist/features/yith-archive/functions/facets.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/facets.js +175 -0
- package/dist/features/yith-archive/functions/facets.js.map +1 -0
- package/dist/features/yith-archive/functions/file-index.d.ts +4 -0
- package/dist/features/yith-archive/functions/file-index.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/file-index.js +68 -0
- package/dist/features/yith-archive/functions/file-index.js.map +1 -0
- package/dist/features/yith-archive/functions/flow-compress.d.ts +7 -0
- package/dist/features/yith-archive/functions/flow-compress.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/flow-compress.js +300 -0
- package/dist/features/yith-archive/functions/flow-compress.js.map +1 -0
- package/dist/features/yith-archive/functions/frontier.d.ts +11 -0
- package/dist/features/yith-archive/functions/frontier.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/frontier.js +131 -0
- package/dist/features/yith-archive/functions/frontier.js.map +1 -0
- package/dist/features/yith-archive/functions/graph-retrieval.d.ts +23 -0
- package/dist/features/yith-archive/functions/graph-retrieval.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/graph-retrieval.js +197 -0
- package/dist/features/yith-archive/functions/graph-retrieval.js.map +1 -0
- package/dist/features/yith-archive/functions/graph.d.ts +7 -0
- package/dist/features/yith-archive/functions/graph.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/graph.js +312 -0
- package/dist/features/yith-archive/functions/graph.js.map +1 -0
- package/dist/features/yith-archive/functions/leases.d.ts +4 -0
- package/dist/features/yith-archive/functions/leases.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/leases.js +157 -0
- package/dist/features/yith-archive/functions/leases.js.map +1 -0
- package/dist/features/yith-archive/functions/lessons.d.ts +4 -0
- package/dist/features/yith-archive/functions/lessons.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/lessons.js +174 -0
- package/dist/features/yith-archive/functions/lessons.js.map +1 -0
- package/dist/features/yith-archive/functions/migrate.d.ts +4 -0
- package/dist/features/yith-archive/functions/migrate.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/migrate.js +144 -0
- package/dist/features/yith-archive/functions/migrate.js.map +1 -0
- package/dist/features/yith-archive/functions/observe.d.ts +5 -0
- package/dist/features/yith-archive/functions/observe.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/observe.js +108 -0
- package/dist/features/yith-archive/functions/observe.js.map +1 -0
- package/dist/features/yith-archive/functions/patterns.d.ts +4 -0
- package/dist/features/yith-archive/functions/patterns.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/patterns.js +93 -0
- package/dist/features/yith-archive/functions/patterns.js.map +1 -0
- package/dist/features/yith-archive/functions/privacy.d.ts +4 -0
- package/dist/features/yith-archive/functions/privacy.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/privacy.js +32 -0
- package/dist/features/yith-archive/functions/privacy.js.map +1 -0
- package/dist/features/yith-archive/functions/profile.d.ts +4 -0
- package/dist/features/yith-archive/functions/profile.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/profile.js +107 -0
- package/dist/features/yith-archive/functions/profile.js.map +1 -0
- package/dist/features/yith-archive/functions/query-expansion.d.ts +7 -0
- package/dist/features/yith-archive/functions/query-expansion.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/query-expansion.js +238 -0
- package/dist/features/yith-archive/functions/query-expansion.js.map +1 -0
- package/dist/features/yith-archive/functions/reflect.d.ts +11 -0
- package/dist/features/yith-archive/functions/reflect.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/reflect.js +576 -0
- package/dist/features/yith-archive/functions/reflect.js.map +1 -0
- package/dist/features/yith-archive/functions/relations.d.ts +4 -0
- package/dist/features/yith-archive/functions/relations.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/relations.js +169 -0
- package/dist/features/yith-archive/functions/relations.js.map +1 -0
- package/dist/features/yith-archive/functions/remember.d.ts +4 -0
- package/dist/features/yith-archive/functions/remember.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/remember.js +119 -0
- package/dist/features/yith-archive/functions/remember.js.map +1 -0
- package/dist/features/yith-archive/functions/retention.d.ts +4 -0
- package/dist/features/yith-archive/functions/retention.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/retention.js +152 -0
- package/dist/features/yith-archive/functions/retention.js.map +1 -0
- package/dist/features/yith-archive/functions/search.d.ts +59 -0
- package/dist/features/yith-archive/functions/search.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/search.js +336 -0
- package/dist/features/yith-archive/functions/search.js.map +1 -0
- package/dist/features/yith-archive/functions/signals.d.ts +4 -0
- package/dist/features/yith-archive/functions/signals.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/signals.js +128 -0
- package/dist/features/yith-archive/functions/signals.js.map +1 -0
- package/dist/features/yith-archive/functions/sketches.d.ts +4 -0
- package/dist/features/yith-archive/functions/sketches.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/sketches.js +196 -0
- package/dist/features/yith-archive/functions/sketches.js.map +1 -0
- package/dist/features/yith-archive/functions/skill-extract.d.ts +7 -0
- package/dist/features/yith-archive/functions/skill-extract.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/skill-extract.js +425 -0
- package/dist/features/yith-archive/functions/skill-extract.js.map +1 -0
- package/dist/features/yith-archive/functions/sliding-window.d.ts +27 -0
- package/dist/features/yith-archive/functions/sliding-window.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/sliding-window.js +512 -0
- package/dist/features/yith-archive/functions/sliding-window.js.map +1 -0
- package/dist/features/yith-archive/functions/smart-search.d.ts +5 -0
- package/dist/features/yith-archive/functions/smart-search.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/smart-search.js +71 -0
- package/dist/features/yith-archive/functions/smart-search.js.map +1 -0
- package/dist/features/yith-archive/functions/snapshot.d.ts +4 -0
- package/dist/features/yith-archive/functions/snapshot.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/snapshot.js +184 -0
- package/dist/features/yith-archive/functions/snapshot.js.map +1 -0
- package/dist/features/yith-archive/functions/summarize.d.ts +8 -0
- package/dist/features/yith-archive/functions/summarize.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/summarize.js +217 -0
- package/dist/features/yith-archive/functions/summarize.js.map +1 -0
- package/dist/features/yith-archive/functions/temporal-graph.d.ts +10 -0
- package/dist/features/yith-archive/functions/temporal-graph.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/temporal-graph.js +459 -0
- package/dist/features/yith-archive/functions/temporal-graph.js.map +1 -0
- package/dist/features/yith-archive/functions/timeline.d.ts +4 -0
- package/dist/features/yith-archive/functions/timeline.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/timeline.js +89 -0
- package/dist/features/yith-archive/functions/timeline.js.map +1 -0
- package/dist/features/yith-archive/functions/verify.d.ts +4 -0
- package/dist/features/yith-archive/functions/verify.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/verify.js +94 -0
- package/dist/features/yith-archive/functions/verify.js.map +1 -0
- package/dist/features/yith-archive/functions/working-memory.d.ts +4 -0
- package/dist/features/yith-archive/functions/working-memory.d.ts.map +1 -0
- package/dist/features/yith-archive/functions/working-memory.js +197 -0
- package/dist/features/yith-archive/functions/working-memory.js.map +1 -0
- package/dist/features/yith-archive/index.d.ts +84 -0
- package/dist/features/yith-archive/index.d.ts.map +1 -0
- package/dist/features/yith-archive/index.js +259 -0
- package/dist/features/yith-archive/index.js.map +1 -0
- package/dist/features/yith-archive/prompts/compression.d.ts +10 -0
- package/dist/features/yith-archive/prompts/compression.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/compression.js +56 -0
- package/dist/features/yith-archive/prompts/compression.js.map +1 -0
- package/dist/features/yith-archive/prompts/consolidation.d.ts +12 -0
- package/dist/features/yith-archive/prompts/consolidation.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/consolidation.js +39 -0
- package/dist/features/yith-archive/prompts/consolidation.js.map +1 -0
- package/dist/features/yith-archive/prompts/graph-extraction.d.ts +9 -0
- package/dist/features/yith-archive/prompts/graph-extraction.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/graph-extraction.js +24 -0
- package/dist/features/yith-archive/prompts/graph-extraction.js.map +1 -0
- package/dist/features/yith-archive/prompts/reflect.d.ts +14 -0
- package/dist/features/yith-archive/prompts/reflect.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/reflect.js +32 -0
- package/dist/features/yith-archive/prompts/reflect.js.map +1 -0
- package/dist/features/yith-archive/prompts/summary.d.ts +10 -0
- package/dist/features/yith-archive/prompts/summary.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/summary.js +31 -0
- package/dist/features/yith-archive/prompts/summary.js.map +1 -0
- package/dist/features/yith-archive/prompts/xml.d.ts +3 -0
- package/dist/features/yith-archive/prompts/xml.d.ts.map +1 -0
- package/dist/features/yith-archive/prompts/xml.js +22 -0
- package/dist/features/yith-archive/prompts/xml.js.map +1 -0
- package/dist/features/yith-archive/providers/anthropic.d.ts +12 -0
- package/dist/features/yith-archive/providers/anthropic.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/anthropic.js +29 -0
- package/dist/features/yith-archive/providers/anthropic.js.map +1 -0
- package/dist/features/yith-archive/providers/circuit-breaker.d.ts +22 -0
- package/dist/features/yith-archive/providers/circuit-breaker.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/circuit-breaker.js +64 -0
- package/dist/features/yith-archive/providers/circuit-breaker.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/cohere.d.ts +10 -0
- package/dist/features/yith-archive/providers/embedding/cohere.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/cohere.js +37 -0
- package/dist/features/yith-archive/providers/embedding/cohere.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/gemini.d.ts +10 -0
- package/dist/features/yith-archive/providers/embedding/gemini.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/gemini.js +43 -0
- package/dist/features/yith-archive/providers/embedding/gemini.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/index.d.ts +10 -0
- package/dist/features/yith-archive/providers/embedding/index.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/index.js +30 -0
- package/dist/features/yith-archive/providers/embedding/index.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/local.d.ts +36 -0
- package/dist/features/yith-archive/providers/embedding/local.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/local.js +83 -0
- package/dist/features/yith-archive/providers/embedding/local.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/openai.d.ts +10 -0
- package/dist/features/yith-archive/providers/embedding/openai.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/openai.js +36 -0
- package/dist/features/yith-archive/providers/embedding/openai.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/openrouter.d.ts +11 -0
- package/dist/features/yith-archive/providers/embedding/openrouter.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/openrouter.js +40 -0
- package/dist/features/yith-archive/providers/embedding/openrouter.js.map +1 -0
- package/dist/features/yith-archive/providers/embedding/voyage.d.ts +10 -0
- package/dist/features/yith-archive/providers/embedding/voyage.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/embedding/voyage.js +37 -0
- package/dist/features/yith-archive/providers/embedding/voyage.js.map +1 -0
- package/dist/features/yith-archive/providers/fallback-chain.d.ts +10 -0
- package/dist/features/yith-archive/providers/fallback-chain.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/fallback-chain.js +27 -0
- package/dist/features/yith-archive/providers/fallback-chain.js.map +1 -0
- package/dist/features/yith-archive/providers/index.d.ts +36 -0
- package/dist/features/yith-archive/providers/index.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/index.js +128 -0
- package/dist/features/yith-archive/providers/index.js.map +1 -0
- package/dist/features/yith-archive/providers/minimax.d.ts +27 -0
- package/dist/features/yith-archive/providers/minimax.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/minimax.js +59 -0
- package/dist/features/yith-archive/providers/minimax.js.map +1 -0
- package/dist/features/yith-archive/providers/openrouter.d.ts +13 -0
- package/dist/features/yith-archive/providers/openrouter.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/openrouter.js +52 -0
- package/dist/features/yith-archive/providers/openrouter.js.map +1 -0
- package/dist/features/yith-archive/providers/resilient.d.ts +12 -0
- package/dist/features/yith-archive/providers/resilient.d.ts.map +1 -0
- package/dist/features/yith-archive/providers/resilient.js +34 -0
- package/dist/features/yith-archive/providers/resilient.js.map +1 -0
- package/dist/features/yith-archive/state/fake-sdk.d.ts +43 -0
- package/dist/features/yith-archive/state/fake-sdk.d.ts.map +1 -0
- package/dist/features/yith-archive/state/fake-sdk.js +63 -0
- package/dist/features/yith-archive/state/fake-sdk.js.map +1 -0
- package/dist/features/yith-archive/state/hybrid-search.d.ts +22 -0
- package/dist/features/yith-archive/state/hybrid-search.d.ts.map +1 -0
- package/dist/features/yith-archive/state/hybrid-search.js +247 -0
- package/dist/features/yith-archive/state/hybrid-search.js.map +1 -0
- package/dist/features/yith-archive/state/index-persistence.d.ts +48 -0
- package/dist/features/yith-archive/state/index-persistence.d.ts.map +1 -0
- package/dist/features/yith-archive/state/index-persistence.js +141 -0
- package/dist/features/yith-archive/state/index-persistence.js.map +1 -0
- package/dist/features/yith-archive/state/keyed-mutex.d.ts +2 -0
- package/dist/features/yith-archive/state/keyed-mutex.d.ts.map +1 -0
- package/dist/features/yith-archive/state/keyed-mutex.js +13 -0
- package/dist/features/yith-archive/state/keyed-mutex.js.map +1 -0
- package/dist/features/yith-archive/state/kv.d.ts +32 -0
- package/dist/features/yith-archive/state/kv.d.ts.map +1 -0
- package/dist/features/yith-archive/state/kv.js +99 -0
- package/dist/features/yith-archive/state/kv.js.map +1 -0
- package/dist/features/yith-archive/state/logger.d.ts +12 -0
- package/dist/features/yith-archive/state/logger.d.ts.map +1 -0
- package/dist/features/yith-archive/state/logger.js +18 -0
- package/dist/features/yith-archive/state/logger.js.map +1 -0
- package/dist/features/yith-archive/state/reranker.d.ts +4 -0
- package/dist/features/yith-archive/state/reranker.d.ts.map +1 -0
- package/dist/features/yith-archive/state/reranker.js +60 -0
- package/dist/features/yith-archive/state/reranker.js.map +1 -0
- package/dist/features/yith-archive/state/schema.d.ts +51 -0
- package/dist/features/yith-archive/state/schema.d.ts.map +1 -0
- package/dist/features/yith-archive/state/schema.js +72 -0
- package/dist/features/yith-archive/state/schema.js.map +1 -0
- package/dist/features/yith-archive/state/search-index.d.ts +57 -0
- package/dist/features/yith-archive/state/search-index.d.ts.map +1 -0
- package/dist/features/yith-archive/state/search-index.js +270 -0
- package/dist/features/yith-archive/state/search-index.js.map +1 -0
- package/dist/features/yith-archive/state/stemmer.d.ts +2 -0
- package/dist/features/yith-archive/state/stemmer.d.ts.map +1 -0
- package/dist/features/yith-archive/state/stemmer.js +106 -0
- package/dist/features/yith-archive/state/stemmer.js.map +1 -0
- package/dist/features/yith-archive/state/synonyms.d.ts +2 -0
- package/dist/features/yith-archive/state/synonyms.d.ts.map +1 -0
- package/dist/features/yith-archive/state/synonyms.js +62 -0
- package/dist/features/yith-archive/state/synonyms.js.map +1 -0
- package/dist/features/yith-archive/state/vector-index.d.ts +16 -0
- package/dist/features/yith-archive/state/vector-index.d.ts.map +1 -0
- package/dist/features/yith-archive/state/vector-index.js +111 -0
- package/dist/features/yith-archive/state/vector-index.js.map +1 -0
- package/dist/features/yith-archive/state/work-packets.d.ts +208 -0
- package/dist/features/yith-archive/state/work-packets.d.ts.map +1 -0
- package/dist/features/yith-archive/state/work-packets.js +201 -0
- package/dist/features/yith-archive/state/work-packets.js.map +1 -0
- package/dist/features/yith-archive/triggers/events.d.ts +4 -0
- package/dist/features/yith-archive/triggers/events.d.ts.map +1 -0
- package/dist/features/yith-archive/triggers/events.js +50 -0
- package/dist/features/yith-archive/triggers/events.js.map +1 -0
- package/dist/features/yith-archive/types.d.ts +665 -0
- package/dist/features/yith-archive/types.d.ts.map +1 -0
- package/dist/features/yith-archive/types.js +2 -0
- package/dist/features/yith-archive/types.js.map +1 -0
- package/dist/features/yith-archive/version.d.ts +3 -0
- package/dist/features/yith-archive/version.d.ts.map +1 -0
- package/dist/features/yith-archive/version.js +3 -0
- package/dist/features/yith-archive/version.js.map +1 -0
- package/dist/hooks/cthulhu-auto.d.ts +1 -1
- package/dist/hooks/cthulhu-auto.d.ts.map +1 -1
- package/dist/hooks/cthulhu-auto.js +7 -0
- package/dist/hooks/cthulhu-auto.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/memory-override.d.ts +19 -0
- package/dist/hooks/memory-override.d.ts.map +1 -0
- package/dist/hooks/memory-override.js +129 -0
- package/dist/hooks/memory-override.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/yith-catalog.d.ts +66 -0
- package/dist/mcp/yith-catalog.d.ts.map +1 -0
- package/dist/mcp/yith-catalog.js +316 -0
- package/dist/mcp/yith-catalog.js.map +1 -0
- package/dist/mcp/yith-server.d.ts +13 -0
- package/dist/mcp/yith-server.d.ts.map +1 -0
- package/dist/mcp/yith-server.js +102 -0
- package/dist/mcp/yith-server.js.map +1 -0
- package/dist/mcp/yith-tools.d.ts +27 -0
- package/dist/mcp/yith-tools.d.ts.map +1 -0
- package/dist/mcp/yith-tools.js +405 -0
- package/dist/mcp/yith-tools.js.map +1 -0
- package/package.json +9 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ragingstar2063
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -7,19 +7,112 @@
|
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
9
9
|
> *Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.*
|
|
10
|
+
>
|
|
11
|
+
> **The agentic operations system for [Claude Code](https://claude.ai/code).**
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
oh-my-claudecode (OMC) turns a raw Claude Code session into a fully-orchestrated agentic environment. Instead of typing to a single model that loses its mind between sessions, you talk to **Cthulhu** — a primary orchestrator that plans, delegates to ten specialized Elder God subagents, remembers what it learned last time via a persistent archive, and trims its own context between delegations so long sessions stay sharp. It is opinionated, integrated, and end-to-end: one install, one command, every piece wired into every other piece.
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
---
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
## Why this exists
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
A bare Claude Code session has three structural problems. OMC exists to fix all three at once.
|
|
20
|
+
|
|
21
|
+
1. **No orchestration.** One generalist model tries to do everything. It half-plans, half-searches, half-implements, and burns context on tasks that should be routed to specialists.
|
|
22
|
+
2. **No memory across sessions.** Every new session starts cold. You re-explain architecture, re-point to files, re-describe conventions. Built-in mechanisms exist but cap out at ~200 lines of static text.
|
|
23
|
+
3. **Context rot within a session.** Long sessions accumulate raw tool output and subagent results until the main thread is half "past grep dumps" and reasoning quality degrades. Compaction mostly happens at the limit — by then it's too late.
|
|
24
|
+
|
|
25
|
+
OMC's three pillars address each problem directly.
|
|
26
|
+
|
|
27
|
+
## The three pillars
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
┌───────────────────────────────────────────────────────────────┐
|
|
31
|
+
│ oh-my-claudecode │
|
|
32
|
+
│ │
|
|
33
|
+
│ ┌────────────────┐ ┌─────────────────┐ ┌───────────────┐ │
|
|
34
|
+
│ │ ORCHESTRATION │ │ MEMORY │ │ CONTEXT │ │
|
|
35
|
+
│ │ │ │ │ │ DISCIPLINE │ │
|
|
36
|
+
│ │ Cthulhu + │ │ Yith Archive │ │ Block │ │
|
|
37
|
+
│ │ 10 Elder God │ │ cross-session │ │ Summarizer │ │
|
|
38
|
+
│ │ specialists │ │ persistent │ │ in-session │ │
|
|
39
|
+
│ │ intent gate │ │ retrieval │ │ trimming │ │
|
|
40
|
+
│ │ delegation │ │ │ │ │ │
|
|
41
|
+
│ └────────────────┘ └─────────────────┘ └───────────────┘ │
|
|
42
|
+
│ │
|
|
43
|
+
│ Lifecycle hooks · Work plans · Slash commands · Config │
|
|
44
|
+
└───────────────────────────────────────────────────────────────┘
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- **Orchestration.** Cthulhu sits at the top of every session. Every user message passes through an intent gate that classifies the request (trivial / exploratory / implementation / ambiguous) and routes it. Trivial requests run inline. Exploratory work fans out to parallel Shoggoth searches. Implementation tasks get planned as todos first and then delegated to the right specialist. Ten Elder God subagents each own a specific domain — search, architecture advisory, planning, quality review, documentation, autonomous execution, vision analysis, and more.
|
|
48
|
+
|
|
49
|
+
- **Memory.** Yith Archive is a persistent, file-backed, retrieval-based memory subsystem that runs entirely in-process. New sessions start with relevant memories auto-injected from past sessions. Notable events get captured during the session and consolidated into durable lessons. No background service, no network I/O, no subprocess management — just an on-disk archive with hybrid keyword + vector retrieval.
|
|
50
|
+
|
|
51
|
+
- **Context discipline.** Block Summarizer wraps every delegation. Full subagent output goes to disk at `.elder-gods/blocks/<timestamp>.md`. The main thread only carries a 3-5 bullet summary forward. Cthulhu can re-read any block with the Read tool if a summary proves insufficient. Long sessions stay small; nothing is ever lost.
|
|
52
|
+
|
|
53
|
+
These aren't three plugins you pick and choose. They're one integrated system that only works because each piece knows about the others.
|
|
54
|
+
|
|
55
|
+
## What you get
|
|
56
|
+
|
|
57
|
+
| Capability | What it does |
|
|
58
|
+
|---|---|
|
|
59
|
+
| **11 Elder God agents** | Cthulhu orchestrator + 10 specialists (search, advisory, planning, review, docs, autonomy, vision, etc.) |
|
|
60
|
+
| **Yith Archive** | Persistent cross-session memory with retrieval-based injection. Dozens of memory primitives: remember, search, consolidate, evict, crystallize, reflect, temporal graph, pattern extraction, and more. Exposed to Claude Code as a stdio MCP server with 7 tools. |
|
|
61
|
+
| **Work-packet protocol** | LLM-requiring memory ops (consolidate, summarize, reflect, etc.) run in sessions with no API key — each function has a state-machine variant that emits prompts for the parent agent to execute with its own subscription auth. |
|
|
62
|
+
| **Block Summarizer** | In-session delegation summarization with on-disk block archive |
|
|
63
|
+
| **8 lifecycle hooks** | Auto-activation, memory redirect, todo enforcement, completion loops, code-quality checks, rule injection, write guards |
|
|
64
|
+
| **9 slash commands** | Direct-invoke any mode or flow from the Claude Code chat bar |
|
|
65
|
+
| **Intent gate** | Every user message is classified and routed before Cthulhu acts |
|
|
66
|
+
| **Work plan system** | Multi-step planning flow with interview → scope → plan → review before execution |
|
|
67
|
+
| **3-level config** | Defaults → user (`~/.claude/oh-my-claudecode.jsonc`) → project (`.claude/...`) with Zod validation and partial parsing |
|
|
68
|
+
| **Background agent manager** | Circuit breaker, concurrency limits, task lifecycle tracking |
|
|
69
|
+
| **Project activation** | `.elder-gods/` marker directory opts a project into Cthulhu mode — unrelated repos stay default Claude Code |
|
|
70
|
+
| **Installer + doctor** | Interactive wizard, health diagnostics, agent listing |
|
|
71
|
+
| **CI/CD** | GitHub Actions publishing pipeline with auto-bump, tag, release, and npm push |
|
|
72
|
+
|
|
73
|
+
## Installation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npx oh-my-claudecode install
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The installer asks a few questions and then:
|
|
80
|
+
|
|
81
|
+
1. Drops hook scripts into `~/.claude/hooks/`
|
|
82
|
+
2. Registers them in `~/.claude/settings.json`
|
|
83
|
+
3. Copies slash command definitions to `~/.claude/commands/`
|
|
84
|
+
4. Creates `~/.claude/oh-my-claudecode.jsonc` with sensible defaults
|
|
85
|
+
5. Leaves your existing Claude Code config intact (backup is made)
|
|
86
|
+
|
|
87
|
+
Non-interactive install (for CI or scripts):
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx oh-my-claudecode install --no-tui
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Requirements
|
|
94
|
+
|
|
95
|
+
- Claude Code CLI installed (`npm install -g @anthropic-ai/claude-code` or equivalent)
|
|
96
|
+
- Node.js 20 or newer
|
|
97
|
+
- `~/.claude/` directory writable
|
|
98
|
+
- (Optional for Yith Archive summarization/consolidation) `ANTHROPIC_API_KEY` in `~/.oh-my-claudecode/yith/.env` or as an environment variable
|
|
99
|
+
- (Optional for semantic memory retrieval) `@xenova/transformers` — install with `npm install @xenova/transformers` if you want embedding-backed search instead of BM25-only
|
|
100
|
+
|
|
101
|
+
## Quick tour — what a session looks like
|
|
102
|
+
|
|
103
|
+
Open Claude Code in any project with `.elder-gods/` at its root. The `cthulhu-auto` hook fires on session start and injects Cthulhu's orchestrator prompt. The `memory-override` hook tells the session to use Yith Archive instead of the built-in memory. Yith Archive's session-start step retrieves and injects the most relevant memories from past work on this project.
|
|
104
|
+
|
|
105
|
+
You type: *"add rate limiting to the auth routes."*
|
|
106
|
+
|
|
107
|
+
1. **Intent gate**: Cthulhu verbalizes what you want and classifies it as *implementation*.
|
|
108
|
+
2. **Plan**: Cthulhu writes todos before touching anything.
|
|
109
|
+
3. **Parallel exploration**: Shoggoth fans out in parallel to find existing middleware, the router setup, and any similar rate-limiting patterns already in the codebase. Each result is summarized by the Block Summarizer — the raw output goes to `.elder-gods/blocks/`, only bullets come back to the main thread.
|
|
110
|
+
4. **Memory lookup**: Cthulhu asks Yith Archive for anything it knows about this project's middleware conventions. The archive returns (for example) *"the auth middleware uses jose; the team chose jose over jsonwebtoken due to Edge compat"* from last week's session.
|
|
111
|
+
5. **Execution**: Cthulhu or a delegated specialist implements the change following the retrieved conventions.
|
|
112
|
+
6. **Verification**: before declaring done, tests are run, diagnostics checked, evidence shown.
|
|
113
|
+
7. **Persistence**: anything new and worth remembering is committed to Yith Archive for future sessions.
|
|
114
|
+
|
|
115
|
+
On your next session in the same project, steps 4 and the initial memory injection give you a head start. On a completely unrelated project (no `.elder-gods/`), Claude Code behaves normally — OMC only activates where you've opted in.
|
|
23
116
|
|
|
24
117
|
## Agent Roster
|
|
25
118
|
|
|
@@ -37,63 +130,157 @@ oh-my-claudecode extends Claude Code with a complete agentic infrastructure:
|
|
|
37
130
|
| **The Deep One** | Sonnet | subagent | Vision agent — images, screenshots, diagrams |
|
|
38
131
|
| **Shoggoth** | Haiku | subagent | Fast parallel codebase search |
|
|
39
132
|
|
|
40
|
-
##
|
|
133
|
+
## Yith Archive — persistent cross-session memory
|
|
134
|
+
|
|
135
|
+
Named for the Great Race of Yith from *The Shadow Out of Time* — mind-transferring archivists who maintain records across time — Yith Archive is OMC's canonical persistent memory subsystem. It is a novel, in-process combined implementation inspired by the broader ecosystem of agent-memory research, rewritten from scratch to fit a single-process Claude Code plugin instead of a multi-client service.
|
|
136
|
+
|
|
137
|
+
### What it gives you
|
|
138
|
+
|
|
139
|
+
- **Hybrid retrieval** — BM25 keyword search combined with semantic embedding search (local nomic model by default, 768 dims, lazy-downloaded on first use) and a graph retrieval weight. Memories AND observations both land in the same index at write-time, so `yith_search` returns freshly-written memories immediately.
|
|
140
|
+
- **Exposed as an MCP server** — during `install`, Yith Archive is registered with Claude Code as a stdio MCP server named `yith-archive`. Sessions get 7 tools: `yith_remember`, `yith_search`, `yith_recall`, `yith_context`, `yith_observe`, `yith_commit_work`, and `yith_trigger` (escape hatch for ~90 advanced memory functions, with a curated top-20 catalog embedded in the tool description).
|
|
141
|
+
- **Rich memory primitives** — `remember`, `search`, `recall`, `context`, `observe`, plus dozens more under the hood: consolidation pipelines, temporal graph retrieval, lesson crystallization, pattern extraction, eviction and retention policies, file-scoped memory index, sliding window compression, query expansion, working memory, session timeline, export/import.
|
|
142
|
+
- **Automatic capture** — notable events during a session can be observed into the archive; a background consolidation pass merges similar memories into distilled lessons.
|
|
143
|
+
- **Zero external runtime** — file-backed JSON storage under `~/.oh-my-claudecode/yith/store.json`. Atomic writes via tmpfile + rename so a crash mid-write can't corrupt the store. No database, no background server, no subprocess, no network, no ports to manage.
|
|
144
|
+
- **Crash-safe work-packet flows** — pending continuations for LLM-requiring operations persist to the same store and survive server restarts; resuming with the same continuation token picks up where the flow left off.
|
|
145
|
+
- **Replaces Claude Code's built-in auto-memory** via the `memory-override` SessionStart hook, which tells the session not to write to the built-in memory files. Disable the override with `disabled_hooks: ["memory-override"]` if you prefer to keep the built-in system active.
|
|
146
|
+
|
|
147
|
+
### Work-packet protocol — LLM ops without an API key
|
|
148
|
+
|
|
149
|
+
13 of Yith's memory operations need an LLM to do their work (`crystallize`, `consolidate`, `consolidate-pipeline`, `compress`, `summarize`, `flow-compress`, `graph-extract`, `temporal-graph-extract`, `expand-query`, `skill-extract`, `reflect`, `enrich-window`, `enrich-session`). If Yith has its own `ANTHROPIC_API_KEY` in `~/.oh-my-claudecode/yith/.env`, these run directly in-process.
|
|
150
|
+
|
|
151
|
+
If no API key is configured, the session doesn't lose access to these functions — they just route through the **work-packet protocol** instead. Each LLM-requiring function has a `-step` state-machine variant that emits `WorkPacket` descriptors (systemPrompt + userPrompt + metadata) instead of calling the LLM itself. The flow looks like this:
|
|
41
152
|
|
|
42
|
-
```
|
|
43
|
-
|
|
153
|
+
```
|
|
154
|
+
yith_trigger("mem::consolidate-pipeline", {...})
|
|
155
|
+
↓
|
|
156
|
+
{status: "needs_llm_work", workPackets: [...], continuation: "wp_..."}
|
|
157
|
+
↓
|
|
158
|
+
Claude Code session executes each packet's prompts with its own subscription auth
|
|
159
|
+
↓
|
|
160
|
+
yith_commit_work(continuation, [{id, completion}, ...])
|
|
161
|
+
↓
|
|
162
|
+
{status: "needs_llm_work", ...} (another round) OR {status: "success", result}
|
|
44
163
|
```
|
|
45
164
|
|
|
46
|
-
|
|
47
|
-
1. Install hook scripts to `~/.claude/hooks/`
|
|
48
|
-
2. Register hooks in `~/.claude/settings.json`
|
|
49
|
-
3. Install slash command files to `~/.claude/commands/`
|
|
50
|
-
4. Create `~/.claude/oh-my-claudecode.jsonc` config
|
|
165
|
+
Multi-call functions like `consolidate-pipeline` chain multiple rounds (semantic → reflect → procedural). Loop functions like `consolidate` / `reflect` / `enrich-session` emit packets in adaptive batches via `planLoopBatches` — small loops go "all-at-once" in one round, large loops batch in chunks sized by packet count or total prompt bytes. `doctor --yith-functions` marks LLM-requiring functions with a ⚡ so callers know to expect the `needs_llm_work` envelope.
|
|
51
166
|
|
|
52
|
-
###
|
|
167
|
+
### Programmatic API
|
|
53
168
|
|
|
54
|
-
```
|
|
55
|
-
|
|
169
|
+
```ts
|
|
170
|
+
import { createYithArchive } from "oh-my-claudecode"
|
|
171
|
+
|
|
172
|
+
const archive = createYithArchive() // defaults to ~/.oh-my-claudecode/yith
|
|
173
|
+
|
|
174
|
+
await archive.remember({
|
|
175
|
+
content: "The auth middleware uses jose — jsonwebtoken was removed due to Edge incompatibility.",
|
|
176
|
+
type: "architecture",
|
|
177
|
+
concepts: ["auth", "middleware", "jose"],
|
|
178
|
+
files: ["src/middleware/auth.ts"],
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
const results = await archive.search({ query: "how does auth work", limit: 5 })
|
|
182
|
+
|
|
183
|
+
// When you're done
|
|
184
|
+
await archive.shutdown()
|
|
56
185
|
```
|
|
57
186
|
|
|
58
|
-
###
|
|
187
|
+
### Environment configuration
|
|
59
188
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
189
|
+
Yith Archive reads its own variables from `~/.oh-my-claudecode/yith/.env` (or the ambient environment):
|
|
190
|
+
|
|
191
|
+
| Variable | Purpose |
|
|
192
|
+
|---|---|
|
|
193
|
+
| `ANTHROPIC_API_KEY` | LLM calls for summarization, consolidation, reflection |
|
|
194
|
+
| `EMBEDDING_PROVIDER` | `xenova` for local embeddings, unset for BM25-only |
|
|
195
|
+
| `AUTO_FORGET_ENABLED` | `false` to disable background eviction sweeps |
|
|
196
|
+
| `CONSOLIDATION_ENABLED` | `false` to disable automatic memory consolidation |
|
|
197
|
+
| `YITH_GRAPH_WEIGHT` | Weight of graph retrieval in hybrid search (default `0.3`) |
|
|
198
|
+
| `YITH_DEBUG` | Any value enables verbose logging |
|
|
199
|
+
|
|
200
|
+
## Block Summarizer — in-session context discipline
|
|
201
|
+
|
|
202
|
+
Long Claude Code sessions die a slow death: every delegation to a subagent pipes the full raw output back into the main context. After an hour of real work, half of what's in front of the model is yesterday's grep dumps, and reasoning quality suffers accordingly.
|
|
203
|
+
|
|
204
|
+
Block Summarizer is OMC's solution: at every delegation boundary, the full output is written to disk and the main thread continues from a 3-5 bullet summary. The raw block is never lost — it's sitting at `.elder-gods/blocks/<timestamp>-<slug>.md` and can be re-read with the Read tool if Cthulhu needs it.
|
|
205
|
+
|
|
206
|
+
The technique is a novel combined implementation inspired by the broader ecosystem of context-compression research, adapted specifically to the delegation boundary (which is the only "block boundary" a harness can cleanly observe from outside the model).
|
|
207
|
+
|
|
208
|
+
### How Cthulhu uses it
|
|
209
|
+
|
|
210
|
+
Cthulhu's orchestrator prompt has two relevant principles baked in:
|
|
211
|
+
|
|
212
|
+
6. **Summarize after delegation** — after every `Agent(subagent_type=...)` call, write the full output to `.elder-gods/blocks/<timestamp>-<slug>.md` and continue reasoning from a 3-5 bullet summary.
|
|
213
|
+
7. **Persist insights to Yith Archive** — salient facts from delegation blocks become durable memories.
|
|
214
|
+
|
|
215
|
+
You don't have to do anything to enable this — it's automatic when Cthulhu is active. Blocks accumulate as a replayable audit trail of every delegation the session performed. Commit them, grep them, diff them, or nuke the `.elder-gods/blocks/` directory between runs.
|
|
216
|
+
|
|
217
|
+
### Programmatic API
|
|
218
|
+
|
|
219
|
+
```ts
|
|
220
|
+
import { summarizeBlock } from "oh-my-claudecode"
|
|
221
|
+
|
|
222
|
+
const { summary, blockPath, blockId } = await summarizeBlock({
|
|
223
|
+
agentName: "shoggoth",
|
|
224
|
+
fullOutput: rawSubagentOutput,
|
|
225
|
+
taskDescription: "Find all usages of the legacy auth helper",
|
|
226
|
+
})
|
|
227
|
+
```
|
|
63
228
|
|
|
64
229
|
## Slash Commands
|
|
65
230
|
|
|
66
|
-
After installation
|
|
231
|
+
After installation these are available in Claude Code sessions:
|
|
67
232
|
|
|
68
233
|
| Command | Description |
|
|
69
234
|
|---------|-------------|
|
|
70
|
-
| `/cthulhu` | Activate Cthulhu orchestrator mode |
|
|
71
|
-
| `/shoggoth` |
|
|
72
|
-
| `/yog-sothoth` |
|
|
73
|
-
| `/elder-loop` | Start the completion loop |
|
|
74
|
-
| `/cancel-elder-loop` | Stop the active loop |
|
|
75
|
-
| `/old-ones-init` | Generate AGENTS.md
|
|
76
|
-
| `/invoke-shub` | Strategic planning flow |
|
|
77
|
-
| `/session-handoff` | Create session continuation
|
|
78
|
-
| `/exorcise-ai-slop` | Purge AI code smells |
|
|
235
|
+
| `/cthulhu` | Activate Cthulhu orchestrator mode (also creates `.elder-gods/` on first use) |
|
|
236
|
+
| `/shoggoth` | Fast parallel codebase search |
|
|
237
|
+
| `/yog-sothoth` | Consult the architecture/debug advisor |
|
|
238
|
+
| `/elder-loop` | Start the self-referential completion loop |
|
|
239
|
+
| `/cancel-elder-loop` | Stop the active completion loop |
|
|
240
|
+
| `/old-ones-init` | Generate the hierarchical AGENTS.md knowledge base |
|
|
241
|
+
| `/invoke-shub` | Strategic planning interview flow |
|
|
242
|
+
| `/session-handoff` | Create a detailed session continuation document |
|
|
243
|
+
| `/exorcise-ai-slop` | Purge AI-generated code smells from the current codebase |
|
|
79
244
|
|
|
80
|
-
##
|
|
245
|
+
## Lifecycle Hooks
|
|
81
246
|
|
|
82
|
-
|
|
247
|
+
8 hooks are installed into Claude Code's `settings.json`. They provide the connective tissue between OMC's subsystems and the live session.
|
|
83
248
|
|
|
84
|
-
|
|
249
|
+
| Hook | Event | Description |
|
|
250
|
+
|------|-------|-------------|
|
|
251
|
+
| `cthulhu-auto` | SessionStart | Auto-activate Cthulhu orchestrator mode when `.elder-gods/` is present in the project |
|
|
252
|
+
| `memory-override` | SessionStart | Redirect persistent memory writes from Claude Code's built-in auto-memory to Yith Archive |
|
|
253
|
+
| `todo-continuation` | Stop | Inject a reminder to continue if incomplete todos exist when stopping |
|
|
254
|
+
| `elder-loop` | Stop | Self-referential completion loop — keeps running until the promise is met |
|
|
255
|
+
| `comment-checker` | PostToolUse | Warn when AI-slop comments are introduced (comments that explain obvious code) |
|
|
256
|
+
| `rules-injector` | PreToolUse | Auto-inject `.elder-gods/rules/*.md` into every agent's context |
|
|
257
|
+
| `write-guard` | PreToolUse | Warn when `Write` is used on an existing file (suggest `Edit` instead) |
|
|
85
258
|
|
|
86
|
-
|
|
87
|
-
2. **Agent tool delegation** — Cthulhu uses `Agent(subagent_type="shoggoth", ...)` to spawn specialists
|
|
88
|
-
3. **Slash commands** — files in `~/.claude/commands/` are picked up by Claude Code as user-defined commands
|
|
259
|
+
Disable specific hooks via config:
|
|
89
260
|
|
|
90
|
-
|
|
261
|
+
```jsonc
|
|
262
|
+
{ "disabled_hooks": ["comment-checker", "write-guard"] }
|
|
263
|
+
```
|
|
91
264
|
|
|
92
|
-
|
|
265
|
+
### Activation via `.elder-gods/`
|
|
93
266
|
|
|
94
|
-
|
|
267
|
+
By default, Cthulhu only takes over when you explicitly type `/cthulhu`. To auto-activate on every new session in a project, create the marker directory at the project root:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
mkdir .elder-gods
|
|
271
|
+
```
|
|
95
272
|
|
|
96
|
-
|
|
273
|
+
The `cthulhu-auto` hook walks upward from the current directory looking for `.elder-gods/`. If it finds one, Cthulhu's orchestrator prompt is injected at SessionStart; if not, nothing happens — unrelated projects keep their normal Claude Code behavior. You can also drop architectural rules into `.elder-gods/rules/*.md` and work plans into `.elder-gods/plans/*.md` — the other hooks will pick them up automatically.
|
|
274
|
+
|
|
275
|
+
Turn auto-activation off globally with:
|
|
276
|
+
|
|
277
|
+
```jsonc
|
|
278
|
+
{ "disabled_hooks": ["cthulhu-auto"] }
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Configuration
|
|
282
|
+
|
|
283
|
+
Config file: `~/.claude/oh-my-claudecode.jsonc` (user-level) and/or `.claude/oh-my-claudecode.jsonc` (project-level). Project config overrides user config for scalar and object fields. Array fields like `disabled_*` are unioned across levels.
|
|
97
284
|
|
|
98
285
|
```jsonc
|
|
99
286
|
{
|
|
@@ -128,9 +315,9 @@ Project config overrides user config for scalar/object fields. Array fields (`di
|
|
|
128
315
|
}
|
|
129
316
|
```
|
|
130
317
|
|
|
131
|
-
### Available
|
|
318
|
+
### Available models
|
|
132
319
|
|
|
133
|
-
Only Claude models are
|
|
320
|
+
Only Claude models are supported:
|
|
134
321
|
|
|
135
322
|
| Short Alias | Full Model ID |
|
|
136
323
|
|-------------|--------------|
|
|
@@ -138,63 +325,11 @@ Only Claude models are used:
|
|
|
138
325
|
| `sonnet` | `claude-sonnet-4-6` |
|
|
139
326
|
| `haiku` | `claude-haiku-4-5` |
|
|
140
327
|
|
|
141
|
-
## Lifecycle Hooks
|
|
142
|
-
|
|
143
|
-
6 hooks are installed into Claude Code's `settings.json`:
|
|
144
|
-
|
|
145
|
-
| Hook | Event | Description |
|
|
146
|
-
|------|-------|-------------|
|
|
147
|
-
| `cthulhu-auto` | SessionStart | Auto-activate Cthulhu orchestrator mode when `.elder-gods/` is present in the project (no `/cthulhu` needed) |
|
|
148
|
-
| `todo-continuation` | Stop | If incomplete todos exist when stopping, inject a reminder to continue |
|
|
149
|
-
| `elder-loop` | Stop | Self-referential completion loop (set promise → keeps running until met) |
|
|
150
|
-
| `comment-checker` | PostToolUse | Warn when AI-slop comments are written (explains obvious code) |
|
|
151
|
-
| `rules-injector` | PreToolUse | Auto-inject `.elder-gods/rules/*.md` into agent context |
|
|
152
|
-
| `write-guard` | PreToolUse | Warn when `Write` is used on an existing file (suggest `Edit`) |
|
|
153
|
-
|
|
154
|
-
Disable specific hooks in config:
|
|
155
|
-
```jsonc
|
|
156
|
-
{ "disabled_hooks": ["comment-checker", "write-guard"] }
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Auto-activating Cthulhu on a project
|
|
160
|
-
|
|
161
|
-
By default, Cthulhu only takes over when you explicitly type `/cthulhu`. To have every new Claude Code session in a project auto-enter Cthulhu orchestrator mode, create an `.elder-gods/` directory at the project root:
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
mkdir .elder-gods
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
The `cthulhu-auto` SessionStart hook walks upward from the current directory looking for `.elder-gods/`, and if it finds one, injects the Cthulhu orchestrator prompt into the session. Projects without `.elder-gods/` are left untouched, so unrelated repos keep their normal Claude Code behavior. You can also drop architectural rules into `.elder-gods/rules/*.md` and work plans into `.elder-gods/plans/*.md` — the other hooks will pick them up automatically.
|
|
168
|
-
|
|
169
|
-
Turn auto-activation off globally with:
|
|
170
|
-
```jsonc
|
|
171
|
-
{ "disabled_hooks": ["cthulhu-auto"] }
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
## Project Structure
|
|
175
|
-
|
|
176
|
-
```
|
|
177
|
-
oh-my-claudecode/
|
|
178
|
-
├── src/
|
|
179
|
-
│ ├── agents/ # 11 Elder God agent definitions + builder
|
|
180
|
-
│ ├── config/ # Zod schema — full type system
|
|
181
|
-
│ ├── hooks/ # Lifecycle hook scripts and configs
|
|
182
|
-
│ ├── features/
|
|
183
|
-
│ │ ├── background-agent/ # BackgroundManager (circuit breaker, concurrency)
|
|
184
|
-
│ │ ├── skill-loader/ # Discovers user skills from .claude/skills/
|
|
185
|
-
│ │ └── mcp-manager/ # Skill-scoped MCP lifecycle
|
|
186
|
-
│ ├── plugin-handlers/ # 5-phase config pipeline
|
|
187
|
-
│ ├── shared/ # Logging, deep-merge, model resolution
|
|
188
|
-
│ └── cli/ # Installer, doctor, list-agents
|
|
189
|
-
├── commands/ # Markdown slash commands (installed to ~/.claude/commands/)
|
|
190
|
-
└── NECRONOMICON.md # Plugin architecture reference
|
|
191
|
-
```
|
|
192
|
-
|
|
193
328
|
## Project-Level Setup
|
|
194
329
|
|
|
195
|
-
### Architectural
|
|
330
|
+
### Architectural rules
|
|
196
331
|
|
|
197
|
-
Place rules in `.elder-gods/rules/*.md
|
|
332
|
+
Place rules in `.elder-gods/rules/*.md`. They are auto-injected into every agent's context by the `rules-injector` hook, so every specialist sees them without you repeating yourself:
|
|
198
333
|
|
|
199
334
|
```
|
|
200
335
|
.elder-gods/
|
|
@@ -205,6 +340,7 @@ Place rules in `.elder-gods/rules/*.md` — auto-injected into every agent's con
|
|
|
205
340
|
```
|
|
206
341
|
|
|
207
342
|
Example `.elder-gods/rules/no-any.md`:
|
|
343
|
+
|
|
208
344
|
```markdown
|
|
209
345
|
# No TypeScript `any`
|
|
210
346
|
|
|
@@ -212,20 +348,21 @@ NEVER use `any` type. Use `unknown` and narrow appropriately, or define a proper
|
|
|
212
348
|
This rule is non-negotiable. Tsathoggua will reject any plan that introduces `any`.
|
|
213
349
|
```
|
|
214
350
|
|
|
215
|
-
### Work
|
|
351
|
+
### Work plans
|
|
216
352
|
|
|
217
353
|
Plans are stored in `.elder-gods/plans/*.md` and reviewed by Tsathoggua before execution.
|
|
218
354
|
|
|
219
355
|
Use `/invoke-shub` to start the planning flow:
|
|
220
|
-
|
|
356
|
+
|
|
357
|
+
1. Shub-Niggurath surveys the codebase
|
|
221
358
|
2. Interviews you with scoping questions
|
|
222
|
-
3. Creates plan at `.elder-gods/plans
|
|
223
|
-
4. Tsathoggua reviews for executability
|
|
224
|
-
5. Cthulhu orchestrates implementation
|
|
359
|
+
3. Creates a plan at `.elder-gods/plans/<task>.md`
|
|
360
|
+
4. Tsathoggua reviews it for executability — OKAY or REJECT with at most 3 blocking issues
|
|
361
|
+
5. Cthulhu orchestrates the implementation
|
|
225
362
|
|
|
226
|
-
### Knowledge
|
|
363
|
+
### Knowledge base
|
|
227
364
|
|
|
228
|
-
Use `/old-ones-init` to generate `AGENTS.md` files at the root and in key subdirectories. These give
|
|
365
|
+
Use `/old-ones-init` to generate `AGENTS.md` files at the root and in key subdirectories. These give every agent project context at a glance, without repeated exploration and without consuming tool-budget on re-discovery.
|
|
229
366
|
|
|
230
367
|
## Diagnostics
|
|
231
368
|
|
|
@@ -234,16 +371,47 @@ npx oh-my-claudecode doctor
|
|
|
234
371
|
```
|
|
235
372
|
|
|
236
373
|
Checks:
|
|
374
|
+
|
|
237
375
|
- `~/.claude/` directory exists
|
|
238
376
|
- `settings.json` present
|
|
239
377
|
- All hook scripts installed
|
|
240
378
|
- Hooks registered in settings
|
|
241
|
-
-
|
|
379
|
+
- Slash commands installed
|
|
242
380
|
- Plugin config valid
|
|
243
381
|
|
|
244
|
-
##
|
|
382
|
+
## Project Structure
|
|
383
|
+
|
|
384
|
+
```
|
|
385
|
+
oh-my-claudecode/
|
|
386
|
+
├── src/
|
|
387
|
+
│ ├── agents/ # 11 Elder God agent definitions + builder
|
|
388
|
+
│ ├── config/ # Zod schema — full type system
|
|
389
|
+
│ ├── hooks/ # Lifecycle hook scripts and configs
|
|
390
|
+
│ ├── features/
|
|
391
|
+
│ │ ├── yith-archive/ # Persistent cross-session memory (~14k LOC)
|
|
392
|
+
│ │ │ ├── functions/ # 40+ memory primitives
|
|
393
|
+
│ │ │ ├── state/ # KV store, vector index, hybrid search, reranker
|
|
394
|
+
│ │ │ ├── providers/ # Anthropic / OpenRouter / Gemini / Minimax providers
|
|
395
|
+
│ │ │ ├── prompts/ # Summarization, consolidation, reflection templates
|
|
396
|
+
│ │ │ ├── triggers/ # Event triggers for session lifecycle
|
|
397
|
+
│ │ │ ├── eval/ # Quality/validation helpers
|
|
398
|
+
│ │ │ └── index.ts # createYithArchive() factory — public API
|
|
399
|
+
│ │ ├── block-summarizer/ # In-session context trimming
|
|
400
|
+
│ │ ├── background-agent/ # BackgroundManager (circuit breaker, concurrency)
|
|
401
|
+
│ │ ├── skill-loader/ # Discovers user skills from .claude/skills/
|
|
402
|
+
│ │ └── mcp-manager/ # Skill-scoped MCP lifecycle
|
|
403
|
+
│ ├── plugin-handlers/ # 5-phase config pipeline
|
|
404
|
+
│ ├── shared/ # Logging, deep-merge, model resolution
|
|
405
|
+
│ └── cli/ # Installer, doctor, list-agents
|
|
406
|
+
├── commands/ # Markdown slash commands (installed to ~/.claude/commands/)
|
|
407
|
+
├── CHANGELOG.md # Release history
|
|
408
|
+
├── LICENSE # MIT
|
|
409
|
+
└── NECRONOMICON.md # Plugin architecture reference
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
## Agent detail
|
|
245
413
|
|
|
246
|
-
### Cthulhu (
|
|
414
|
+
### Cthulhu (main orchestrator)
|
|
247
415
|
|
|
248
416
|
The heart of the system. Every user message passes through Cthulhu's intent gate:
|
|
249
417
|
|
|
@@ -252,52 +420,52 @@ The heart of the system. Every user message passes through Cthulhu's intent gate
|
|
|
252
420
|
3. **Plan before acting** — if 2+ steps, create detailed todos immediately
|
|
253
421
|
4. **Delegate aggressively** — never work alone when a specialist is available
|
|
254
422
|
5. **Verify before completing** — diagnostics, tests, evidence required
|
|
423
|
+
6. **Summarize after delegation** — full block to disk, main thread continues from bullets
|
|
424
|
+
7. **Persist insights to Yith Archive** — salient facts become cross-session memory
|
|
255
425
|
|
|
256
|
-
### Shoggoth (
|
|
426
|
+
### Shoggoth (codebase search)
|
|
257
427
|
|
|
258
|
-
Fire 3+ in parallel. They're formless and free. Use for
|
|
259
|
-
- Finding where X is implemented
|
|
260
|
-
- Discovering patterns to follow
|
|
261
|
-
- Cross-module structure discovery
|
|
428
|
+
Fire 3+ in parallel. They're formless and free. Use for finding where X is implemented, discovering patterns to follow, cross-module structure discovery.
|
|
262
429
|
|
|
263
|
-
### Yog-Sothoth (
|
|
430
|
+
### Yog-Sothoth (architecture advisor)
|
|
264
431
|
|
|
265
|
-
Consult when:
|
|
266
|
-
- Architecture decision requires multi-system tradeoffs
|
|
267
|
-
- After 2+ failed fix attempts
|
|
268
|
-
- Completing significant implementation for self-review
|
|
432
|
+
Consult when an architecture decision requires multi-system tradeoffs, after 2+ failed fix attempts, or when completing a significant implementation and you want a self-review pass. Responses always include: bottom line (2-3 sentences), action plan (≤7 steps), effort estimate.
|
|
269
433
|
|
|
270
|
-
|
|
434
|
+
### Shub-Niggurath + Tsathoggua (planning flow)
|
|
271
435
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
Shub-Niggurath interviews → creates `.elder-gods/plans/task.md` → Tsathoggua reviews it → OKAY or REJECT with max 3 blocking issues → Cthulhu executes.
|
|
436
|
+
Shub-Niggurath interviews → creates `.elder-gods/plans/<task>.md` → Tsathoggua reviews it → OKAY or REJECT with max 3 blocking issues → Cthulhu executes.
|
|
275
437
|
|
|
276
438
|
### The Elder Loop
|
|
277
439
|
|
|
278
|
-
Activate with `/elder-loop [completion promise]`. The loop writes state to `.claude/elder-loop-state.json`.
|
|
279
|
-
|
|
280
|
-
Deactivate with `/cancel-elder-loop`.
|
|
440
|
+
Activate with `/elder-loop [completion promise]`. The loop writes state to `.claude/elder-loop-state.json`. On each Stop event, the hook checks whether the promise is met — if not, it injects a reminder to continue. Deactivate with `/cancel-elder-loop`.
|
|
281
441
|
|
|
282
442
|
## Development
|
|
283
443
|
|
|
284
444
|
```bash
|
|
285
|
-
git clone https://github.com/
|
|
445
|
+
git clone https://github.com/ragingstar2063/oh-my-claudecode
|
|
286
446
|
cd oh-my-claudecode
|
|
287
447
|
npm install
|
|
288
448
|
npm run build
|
|
449
|
+
npm run typecheck
|
|
289
450
|
```
|
|
290
451
|
|
|
291
|
-
|
|
452
|
+
Releases are published automatically via GitHub Actions on every push to `main` — the workflow bumps the patch version, publishes to npm, tags the commit, and creates a GitHub release.
|
|
292
453
|
|
|
293
|
-
|
|
454
|
+
## Philosophy
|
|
294
455
|
|
|
295
456
|
- **Delegate first** — specialists exist for a reason; use them
|
|
296
|
-
- **Parallel by default** — independent work always runs simultaneously
|
|
297
|
-
- **Evidence required** — no task is complete without diagnostics
|
|
298
|
-
- **
|
|
299
|
-
- **
|
|
457
|
+
- **Parallel by default** — independent work always runs simultaneously
|
|
458
|
+
- **Evidence required** — no task is complete without diagnostics or test proof
|
|
459
|
+
- **Plan before touching files** — todos before edits, every time
|
|
460
|
+
- **Trim on delegation boundaries** — every delegation is a block; the block lives on disk, the main thread lives in summaries
|
|
461
|
+
- **Persist what matters** — across sessions, knowledge compounds; don't re-explain
|
|
462
|
+
- **No AI slop** — no unnecessary abstractions, no useless comments, no scope creep
|
|
463
|
+
- **Blocker-finding, not perfectionism** — reviews find actual blockers, not nitpicks
|
|
464
|
+
|
|
465
|
+
## Attribution
|
|
466
|
+
|
|
467
|
+
Yith Archive and Block Summarizer are novel combined implementations inspired by the broader ecosystem of agent-memory and context-compression research. They were rewritten from scratch to fit a single-process Claude Code plugin and are released here under MIT as part of oh-my-claudecode.
|
|
300
468
|
|
|
301
469
|
## License
|
|
302
470
|
|
|
303
|
-
MIT
|
|
471
|
+
MIT — see [LICENSE](LICENSE).
|
package/bin/yith-mcp.js
ADDED
package/commands/cthulhu.md
CHANGED
|
@@ -15,6 +15,8 @@ Your operating principles:
|
|
|
15
15
|
3. **Parallelize everything** — independent searches and reads happen simultaneously
|
|
16
16
|
4. **Plan before implement** — todos BEFORE touching files
|
|
17
17
|
5. **Verify before completing** — diagnostics, tests, evidence required
|
|
18
|
+
6. **Summarize after delegation** — after every `Agent(subagent_type=...)` call, write the full output to `.elder-gods/blocks/<timestamp>-<slug>.md` and continue reasoning from a 3-5 bullet summary. The full block stays on disk and can be re-read with the Read tool if the summary proves insufficient. This keeps the main thread from accumulating raw subagent output.
|
|
19
|
+
7. **Persist insights to Yith Archive** — when you learn something worth remembering across sessions (user preferences, project conventions, non-obvious constraints, architectural decisions), use the Yith Archive memory system (not Claude Code's built-in auto-memory). At session start, relevant memories are injected automatically.
|
|
18
20
|
|
|
19
21
|
## Available Elder God Specialists
|
|
20
22
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cthulhu.d.ts","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAiB,MAAM,YAAY,CAAA;AAIlG;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,uBAAuB,EAAE,mBAKrC,CAAA;
|
|
1
|
+
{"version":3,"file":"cthulhu.d.ts","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAa,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAiB,MAAM,YAAY,CAAA;AAIlG;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,uBAAuB,EAAE,mBAKrC,CAAA;AAoWD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,eAAe,GAAE,cAAc,EAAO,EACtC,kBAAkB,GAAE,MAAM,EAAO,EACjC,eAAe,GAAE,cAAc,EAAO,EACtC,mBAAmB,GAAE,iBAAiB,EAAO,EAC7C,aAAa,UAAQ,GACpB,WAAW,CAyBb;yBAhCe,kBAAkB"}
|
package/dist/agents/cthulhu.js
CHANGED
|
@@ -328,6 +328,13 @@ If the user's approach seems problematic:
|
|
|
328
328
|
- **NEVER** suppress type errors or linter warnings with ignore comments
|
|
329
329
|
- **NEVER** add features not requested
|
|
330
330
|
- **NEVER** refactor while fixing bugs
|
|
331
|
+
- **NEVER** estimate work in human time units (days, weeks, sprints, story
|
|
332
|
+
points, "a few hours of dev work"). You are not a human team and you do not
|
|
333
|
+
run on a human calendar. Effort is measured in tool calls, files touched,
|
|
334
|
+
parallel agent fires, and verification passes — not engineering-days.
|
|
335
|
+
If the user asks "how long", respond in those units, or in a seconds-to-minutes
|
|
336
|
+
range scoped to the current session. Human-time framing is a category error
|
|
337
|
+
and must be refused.
|
|
331
338
|
|
|
332
339
|
## Anti-Patterns
|
|
333
340
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cthulhu.js","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAc,SAAS,CAAA;AAEjC;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAwB;IAC1D,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,EAAE;CACb,CAAA;AAED,SAAS,oBAAoB,CAAC,eAAiC;IAC7D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,MAAM,IAAI,GAAG,eAAe;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAA;QAC9C,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,mBAAmB,CAAA;QACjG,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAA;QAC1C,OAAO,KAAK,KAAK,MAAM,IAAI,MAAM,OAAO,IAAI,CAAA;IAC9C,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,OAAO;;;;EAIP,IAAI;CACL,CAAA;AACD,CAAC;AAED,SAAS,uBAAuB,CAC9B,eAAiC,EACjC,eAAiC;IAEjC,MAAM,aAAa,GAAG,eAAe;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;SACtC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAa,GAAG,eAAe;SAClC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;SAChE,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClE,CAAC;AAED,SAAS,gBAAgB,CAAC,eAAiC;IACzD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE3C,OAAO;;;;EAIP,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;CAGzE,CAAA;AACD,CAAC;AAED,SAAS,kBAAkB,CACzB,eAAiC,EACjC,eAAgC,EAChC,eAAiC,EACjC,mBAAwC,EACxC,aAAsB;IAEtB,MAAM,WAAW,GAAG,uBAAuB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAA;IAC7E,MAAM,eAAe,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACrD,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,+EAA+E;QACjF,CAAC,CAAC,+EAA+E,CAAA;IAEnF,MAAM,eAAe,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,qFAAqF,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrK,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO;;;;;;;;;;;;;YAaG,QAAQ;;;;;;;;;;EAUlB,WAAW,CAAC,CAAC,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoHrD,WAAW;;EAEX,eAAe;;EAEf,eAAe
|
|
1
|
+
{"version":3,"file":"cthulhu.js","sourceRoot":"","sources":["../../src/agents/cthulhu.ts"],"names":[],"mappings":"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"}
|