wicked-garden 12.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/archetypes.json +166 -0
- package/.claude-plugin/components.json +75 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +174 -0
- package/.claude-plugin/specialist.json +48 -0
- package/.claude-plugin/stack-registry.json +96 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +99 -0
- package/ETHOS.md +83 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
- package/agents/agentic/architect.md +449 -0
- package/agents/agentic/performance-analyst.md +702 -0
- package/agents/agentic/safety-reviewer.md +662 -0
- package/agents/crew/implementer.md +163 -0
- package/agents/crew/researcher.md +94 -0
- package/agents/crew/reviewer.md +184 -0
- package/agents/data/data-engineer.md +227 -0
- package/agents/engineering/api-documentarian.md +440 -0
- package/agents/engineering/migration-engineer.md +301 -0
- package/agents/engineering/solution-architect.md +208 -0
- package/agents/jam/brainstorm-facilitator.md +297 -0
- package/agents/jam/council.md +322 -0
- package/agents/jam/quick-facilitator.md +85 -0
- package/agents/persona/persona-agent.md +121 -0
- package/agents/platform/compliance-officer.md +266 -0
- package/agents/platform/privacy-expert.md +496 -0
- package/agents/platform/security-engineer.md +287 -0
- package/agents/product/a11y-expert.md +323 -0
- package/agents/product/requirements-analyst.md +238 -0
- package/agents/product/ui-reviewer.md +180 -0
- package/agents/product/ux-designer.md +199 -0
- package/agents/product/value-strategist.md +269 -0
- package/agents/qe/semantic-reviewer.md +78 -0
- package/commands/agentic/audit.md +24 -0
- package/commands/agentic/design.md +24 -0
- package/commands/agentic/frameworks.md +25 -0
- package/commands/agentic/review.md +27 -0
- package/commands/archetype/build.md +12 -0
- package/commands/archetype/decide.md +12 -0
- package/commands/archetype/explore.md +12 -0
- package/commands/archetype/incident.md +12 -0
- package/commands/archetype/migrate.md +12 -0
- package/commands/archetype/modernize.md +12 -0
- package/commands/archetype/review.md +14 -0
- package/commands/archetype/ship.md +12 -0
- package/commands/archetype/specify.md +12 -0
- package/commands/archetype/triage.md +12 -0
- package/commands/compile.md +37 -0
- package/commands/data/analyze.md +18 -0
- package/commands/data/data.md +21 -0
- package/commands/data/ml.md +18 -0
- package/commands/data/ontology.md +22 -0
- package/commands/data/pipeline.md +17 -0
- package/commands/deliberate.md +181 -0
- package/commands/engineering/add-field.md +77 -0
- package/commands/engineering/apply.md +58 -0
- package/commands/engineering/arch.md +26 -0
- package/commands/engineering/debug.md +27 -0
- package/commands/engineering/docs.md +27 -0
- package/commands/engineering/new-generator.md +257 -0
- package/commands/engineering/patch-plan.md +59 -0
- package/commands/engineering/plan.md +29 -0
- package/commands/engineering/remove.md +48 -0
- package/commands/engineering/rename.md +44 -0
- package/commands/engineering/review.md +32 -0
- package/commands/help.md +128 -0
- package/commands/install.md +118 -0
- package/commands/intent.md +54 -0
- package/commands/jam/brainstorm.md +37 -0
- package/commands/jam/council.md +49 -0
- package/commands/jam/quick.md +21 -0
- package/commands/jam/revisit.md +79 -0
- package/commands/persona/as.md +136 -0
- package/commands/persona/define.md +24 -0
- package/commands/persona/list.md +118 -0
- package/commands/platform/actions.md +20 -0
- package/commands/platform/assert.md +18 -0
- package/commands/platform/audit.md +23 -0
- package/commands/platform/compliance.md +20 -0
- package/commands/platform/gh.md +22 -0
- package/commands/platform/health.md +22 -0
- package/commands/platform/incident.md +23 -0
- package/commands/platform/infra.md +24 -0
- package/commands/platform/peer-health.md +103 -0
- package/commands/platform/plugin-health.md +58 -0
- package/commands/platform/security.md +38 -0
- package/commands/platform/toolchain.md +96 -0
- package/commands/platform/traces.md +20 -0
- package/commands/product/a11y.md +19 -0
- package/commands/product/acceptance.md +19 -0
- package/commands/product/align.md +20 -0
- package/commands/product/analyze.md +23 -0
- package/commands/product/elicit.md +19 -0
- package/commands/product/listen.md +24 -0
- package/commands/product/mockup.md +20 -0
- package/commands/product/screenshot.md +19 -0
- package/commands/product/strategy.md +40 -0
- package/commands/product/synthesize.md +23 -0
- package/commands/product/ux-review.md +42 -0
- package/commands/product/ux.md +20 -0
- package/commands/product/visual-direction.md +34 -0
- package/commands/prove.md +47 -0
- package/commands/report-issue.md +243 -0
- package/commands/reset.md +144 -0
- package/commands/search/blast-radius.md +58 -0
- package/commands/search/hotspots.md +55 -0
- package/commands/search/index.md +38 -0
- package/commands/search/lineage.md +47 -0
- package/commands/search/service-map.md +79 -0
- package/commands/setup.md +363 -0
- package/commands/smaht/briefing.md +200 -0
- package/commands/smaht/events-import.md +95 -0
- package/commands/smaht/state.md +19 -0
- package/commands/where-am-i.md +58 -0
- package/docs/README.md +32 -0
- package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
- package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
- package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
- package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
- package/docs/brain-chunk-format.md +135 -0
- package/docs/compiler.md +95 -0
- package/docs/daemon-api.md +70 -0
- package/docs/domains.md +197 -0
- package/docs/getting-started.md +208 -0
- package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
- package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
- package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
- package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
- package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
- package/docs/required-peers.md +60 -0
- package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
- package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
- package/docs/v11/archetypes.md +231 -0
- package/hooks/hooks.json +275 -0
- package/hooks/scripts/bootstrap.py +1797 -0
- package/hooks/scripts/invoke.py +62 -0
- package/hooks/scripts/notification.py +166 -0
- package/hooks/scripts/permission_request.py +223 -0
- package/hooks/scripts/post_tool.py +1374 -0
- package/hooks/scripts/pre_compact.py +272 -0
- package/hooks/scripts/pre_tool.py +1278 -0
- package/hooks/scripts/prompt_submit.py +1109 -0
- package/hooks/scripts/session_end.py +95 -0
- package/hooks/scripts/stop.py +624 -0
- package/hooks/scripts/subagent_lifecycle.py +464 -0
- package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
- package/hooks/scripts/task_completed.py +322 -0
- package/hooks/scripts/worktree_guard.py +148 -0
- package/hooks/subscriptions/on_gate_decided.json +9 -0
- package/install.mjs +128 -0
- package/package.json +41 -0
- package/pyproject.toml +59 -0
- package/schemas/README.md +32 -0
- package/schemas/assert_contracts.json +37 -0
- package/schemas/health_probe.json +46 -0
- package/schemas/plugin_status.json +37 -0
- package/scripts/_adapters/__init__.py +166 -0
- package/scripts/_adapters/jira_adapter.py +18 -0
- package/scripts/_adapters/linear_adapter.py +18 -0
- package/scripts/_adapters/miro_adapter.py +18 -0
- package/scripts/_adapters/notion_adapter.py +18 -0
- package/scripts/_agents.py +357 -0
- package/scripts/_brain_ingest/__init__.py +2 -0
- package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
- package/scripts/_brain_port.py +163 -0
- package/scripts/_bus.py +1081 -0
- package/scripts/_bus_catalog_gen.py +93 -0
- package/scripts/_bus_consumers.json +46 -0
- package/scripts/_bus_emit.py +43 -0
- package/scripts/_capability_registry.py +334 -0
- package/scripts/_capability_resolver.py +322 -0
- package/scripts/_domain_store.py +559 -0
- package/scripts/_event_log_reader.py +154 -0
- package/scripts/_event_schema.py +305 -0
- package/scripts/_event_store.py +397 -0
- package/scripts/_heavy_cadence.py +324 -0
- package/scripts/_integration_resolver.py +321 -0
- package/scripts/_logger.py +151 -0
- package/scripts/_loom.py +482 -0
- package/scripts/_paths.py +133 -0
- package/scripts/_python.sh +22 -0
- package/scripts/_run.py +137 -0
- package/scripts/_session.py +502 -0
- package/scripts/_validate_registry.py +1042 -0
- package/scripts/_wicked_testing_probe.py +277 -0
- package/scripts/agentic/analyze_agents.py +391 -0
- package/scripts/agentic/detect_framework.py +420 -0
- package/scripts/agentic/issue_taxonomy.py +357 -0
- package/scripts/agentic/pattern_scorer.py +434 -0
- package/scripts/classify/persist.py +169 -0
- package/scripts/compiler/compile.py +552 -0
- package/scripts/compiler/phase0/VERDICT.md +60 -0
- package/scripts/compiler/phase0/detect.py +292 -0
- package/scripts/compiler/phase0/emit.py +228 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
- package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
- package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/verdict.json +104 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
- package/scripts/compiler/phase0/run_probe.py +234 -0
- package/scripts/compiler/phase0/wire_vault.py +310 -0
- package/scripts/crew/__init__.py +0 -0
- package/scripts/crew/_task_audit_writer.py +243 -0
- package/scripts/crew/_task_reader.py +389 -0
- package/scripts/crew/archetypes_v11.py +348 -0
- package/scripts/crew/detectors/__init__.py +12 -0
- package/scripts/crew/flow_compiler.py +121 -0
- package/scripts/crew/phase_manager.py +703 -0
- package/scripts/crew/scope_delta.py +264 -0
- package/scripts/crew/specialist_resolver.py +218 -0
- package/scripts/crew/stack_registry.py +189 -0
- package/scripts/data/data_profiler.py +271 -0
- package/scripts/data/ontology_recommender.py +231 -0
- package/scripts/data/schema_validator.py +267 -0
- package/scripts/delivery/drift.py +739 -0
- package/scripts/delivery/telemetry.py +614 -0
- package/scripts/engineering/patch/codegraph_db.py +125 -0
- package/scripts/engineering/patch/generators/__init__.py +56 -0
- package/scripts/engineering/patch/generators/base.py +373 -0
- package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
- package/scripts/engineering/patch/generators/go_generator.py +430 -0
- package/scripts/engineering/patch/generators/java_generator.py +928 -0
- package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
- package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
- package/scripts/engineering/patch/generators/perl_generator.py +510 -0
- package/scripts/engineering/patch/generators/php_generator.py +644 -0
- package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
- package/scripts/engineering/patch/generators/python_generator.py +487 -0
- package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
- package/scripts/engineering/patch/generators/rust_generator.py +400 -0
- package/scripts/engineering/patch/generators/sql_generator.py +594 -0
- package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
- package/scripts/engineering/patch/patch.py +800 -0
- package/scripts/engineering/patch/safety.py +429 -0
- package/scripts/jam/__init__.py +0 -0
- package/scripts/jam/_bus_consumers.py +271 -0
- package/scripts/jam/agentic_cli_registry.py +703 -0
- package/scripts/jam/consensus.py +737 -0
- package/scripts/jam/detect_clis.py +409 -0
- package/scripts/jam/jam.py +283 -0
- package/scripts/jam/save_transcript.py +171 -0
- package/scripts/loom/__init__.py +22 -0
- package/scripts/loom/cli.py +170 -0
- package/scripts/loom/compose.py +180 -0
- package/scripts/loom/gate.py +120 -0
- package/scripts/loom/manifest.py +140 -0
- package/scripts/loom/resolve.py +59 -0
- package/scripts/persona/__init__.py +0 -0
- package/scripts/persona/registry.py +688 -0
- package/scripts/platform/guard_pipeline.py +1214 -0
- package/scripts/platform/guard_profiles.py +216 -0
- package/scripts/platform/observability/assert_contracts.py +434 -0
- package/scripts/platform/observability/health_probe.py +915 -0
- package/scripts/platform/observability/ops_log_viewer.py +209 -0
- package/scripts/platform/prereq_doctor.py +567 -0
- package/scripts/qe/conditions_manifest.py +260 -0
- package/scripts/qe/content_sanitizer.py +160 -0
- package/scripts/qe/coverage_tracker.py +535 -0
- package/scripts/qe/discover_scenarios.py +243 -0
- package/scripts/qe/evidence_tracker.py +232 -0
- package/scripts/qe/prove.py +196 -0
- package/scripts/qe/registry_lookup.py +80 -0
- package/scripts/qe/registry_store.py +176 -0
- package/scripts/qe/semantic_review.py +1005 -0
- package/scripts/qe/vault_gate.py +382 -0
- package/scripts/qe/verdict_audit.py +175 -0
- package/scripts/qe/verdict_schema.py +335 -0
- package/scripts/reset.py +220 -0
- package/scripts/resolve_path.py +22 -0
- package/scripts/sentinel/invariants.py +402 -0
- package/scripts/sentinel/pre_push.py +73 -0
- package/scripts/setup/__init__.py +1 -0
- package/scripts/setup/detect_state.py +114 -0
- package/scripts/setup/migrate_legacy.py +67 -0
- package/scripts/setup/migrate_v6_projects.py +232 -0
- package/scripts/setup/onboarding.py +114 -0
- package/scripts/smaht/_bus_consumers.py +98 -0
- package/scripts/smaht/adapters/__init__.py +83 -0
- package/scripts/smaht/adapters/brain_adapter.py +254 -0
- package/scripts/smaht/adapters/context7_adapter.py +438 -0
- package/scripts/smaht/adapters/delegation_adapter.py +104 -0
- package/scripts/smaht/adapters/domain_adapter.py +206 -0
- package/scripts/smaht/adapters/events_adapter.py +231 -0
- package/scripts/smaht/adapters/tools_adapter.py +49 -0
- package/scripts/smaht/cheatsheet_store.py +236 -0
- package/scripts/smaht/context_package.py +386 -0
- package/scripts/smaht/knowledge_graph.py +395 -0
- package/scripts/smaht/propose_skills.py +856 -0
- package/scripts/smaht/test_cheatsheet_store.py +428 -0
- package/scripts/statusline.py +151 -0
- package/scripts/where_am_i.py +236 -0
- package/skills/agentic/agentic-patterns/SKILL.md +91 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
- package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
- package/skills/agentic/context-engineering/SKILL.md +142 -0
- package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
- package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
- package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
- package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
- package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
- package/skills/agentic/frameworks/SKILL.md +191 -0
- package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
- package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
- package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
- package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
- package/skills/agentic/refs/audit.md +134 -0
- package/skills/agentic/refs/design.md +137 -0
- package/skills/agentic/refs/frameworks.md +102 -0
- package/skills/agentic/refs/review.md +160 -0
- package/skills/agentic/review-methodology/SKILL.md +186 -0
- package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
- package/skills/agentic/trust-and-safety/SKILL.md +177 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
- package/skills/archetype/SKILL.md +104 -0
- package/skills/archetype/refs/build.md +142 -0
- package/skills/archetype/refs/decide.md +117 -0
- package/skills/archetype/refs/explore.md +66 -0
- package/skills/archetype/refs/incident.md +149 -0
- package/skills/archetype/refs/migrate.md +170 -0
- package/skills/archetype/refs/modernize.md +187 -0
- package/skills/archetype/refs/review.md +145 -0
- package/skills/archetype/refs/ship.md +117 -0
- package/skills/archetype/refs/specify.md +108 -0
- package/skills/archetype/refs/triage.md +62 -0
- package/skills/classify/SKILL.md +157 -0
- package/skills/data/analysis/SKILL.md +125 -0
- package/skills/data/analysis/refs/templates.md +170 -0
- package/skills/data/data/SKILL.md +118 -0
- package/skills/data/data/refs/examples.md +235 -0
- package/skills/data/ml/SKILL.md +125 -0
- package/skills/data/ml/refs/templates.md +172 -0
- package/skills/data/pipeline/SKILL.md +136 -0
- package/skills/data/pipeline/refs/templates.md +175 -0
- package/skills/data/refs/analyze.md +123 -0
- package/skills/data/refs/data.md +95 -0
- package/skills/data/refs/ml.md +118 -0
- package/skills/data/refs/pipeline.md +92 -0
- package/skills/deliberate/SKILL.md +125 -0
- package/skills/deliberate/refs/architecture-lens.md +37 -0
- package/skills/deliberate/refs/assumptions-lens.md +43 -0
- package/skills/deliberate/refs/code-lens.md +38 -0
- package/skills/deliberate/refs/content-lens.md +37 -0
- package/skills/deliberate/refs/data-lens.md +43 -0
- package/skills/deliberate/refs/design-lens.md +37 -0
- package/skills/deliberate/refs/opportunity-patterns.md +107 -0
- package/skills/deliberate/refs/ops-lens.md +43 -0
- package/skills/deliberate/refs/product-lens.md +46 -0
- package/skills/deliberate/refs/rethink-framework.md +77 -0
- package/skills/deliberate/refs/security-lens.md +47 -0
- package/skills/deliberate/refs/testing-lens.md +45 -0
- package/skills/deliberate/refs/timing-lens.md +42 -0
- package/skills/engineering/architecture/SKILL.md +177 -0
- package/skills/engineering/architecture/refs/adr-template.md +268 -0
- package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
- package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
- package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
- package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
- package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
- package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
- package/skills/engineering/backend/SKILL.md +102 -0
- package/skills/engineering/backend/refs/checklists.md +146 -0
- package/skills/engineering/backend/refs/patterns.md +181 -0
- package/skills/engineering/debugging/SKILL.md +99 -0
- package/skills/engineering/debugging/refs/patterns.md +248 -0
- package/skills/engineering/debugging/refs/process.md +203 -0
- package/skills/engineering/docs/SKILL.md +97 -0
- package/skills/engineering/engineering/SKILL.md +88 -0
- package/skills/engineering/engineering/refs/checklists.md +91 -0
- package/skills/engineering/engineering/refs/templates.md +71 -0
- package/skills/engineering/frontend/SKILL.md +92 -0
- package/skills/engineering/frontend/refs/checklists.md +96 -0
- package/skills/engineering/frontend/refs/patterns.md +167 -0
- package/skills/engineering/integration/SKILL.md +183 -0
- package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
- package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
- package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
- package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
- package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
- package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
- package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
- package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
- package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
- package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
- package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
- package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
- package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
- package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
- package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
- package/skills/engineering/integration/refs/grpc-testing.md +49 -0
- package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
- package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
- package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
- package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
- package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
- package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
- package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
- package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
- package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
- package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
- package/skills/engineering/large-scale-migration/SKILL.md +65 -0
- package/skills/engineering/patch/SKILL.md +184 -0
- package/skills/engineering/refs/arch.md +126 -0
- package/skills/engineering/refs/debug.md +142 -0
- package/skills/engineering/refs/docs.md +190 -0
- package/skills/engineering/refs/plan.md +109 -0
- package/skills/engineering/refs/review.md +138 -0
- package/skills/engineering/system-design/SKILL.md +154 -0
- package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
- package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
- package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
- package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
- package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
- package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
- package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
- package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
- package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
- package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
- package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
- package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
- package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
- package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
- package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
- package/skills/engineering/unit-test-quality/SKILL.md +194 -0
- package/skills/ground/SKILL.md +130 -0
- package/skills/integration-discovery/SKILL.md +168 -0
- package/skills/integration-discovery/refs/capabilities.md +282 -0
- package/skills/integration-discovery/refs/cli-detection.md +295 -0
- package/skills/integration-discovery/refs/discovery-sources.md +233 -0
- package/skills/integration-discovery/refs/task-patterns.md +206 -0
- package/skills/jam/SKILL.md +45 -0
- package/skills/jam/refs/facilitation-patterns.md +125 -0
- package/skills/jam/refs/quick.md +64 -0
- package/skills/jam/refs/synthesis-patterns.md +114 -0
- package/skills/multi-model/SKILL.md +168 -0
- package/skills/multi-model/refs/aichat.md +119 -0
- package/skills/multi-model/refs/aider.md +100 -0
- package/skills/multi-model/refs/auditability.md +238 -0
- package/skills/multi-model/refs/codex.md +169 -0
- package/skills/multi-model/refs/context.md +306 -0
- package/skills/multi-model/refs/copilot.md +161 -0
- package/skills/multi-model/refs/examples.md +224 -0
- package/skills/multi-model/refs/gemini.md +185 -0
- package/skills/multi-model/refs/goose.md +112 -0
- package/skills/multi-model/refs/llm.md +124 -0
- package/skills/multi-model/refs/opencode.md +196 -0
- package/skills/multi-model/refs/orchestration.md +188 -0
- package/skills/multi-model/refs/pi.md +208 -0
- package/skills/persona/SKILL.md +144 -0
- package/skills/persona/refs/define.md +133 -0
- package/skills/platform/actions/refs/actions.md +114 -0
- package/skills/platform/audit/SKILL.md +174 -0
- package/skills/platform/audit/refs/audit.md +145 -0
- package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
- package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
- package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
- package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
- package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
- package/skills/platform/compliance/SKILL.md +169 -0
- package/skills/platform/compliance/refs/checklists.md +303 -0
- package/skills/platform/compliance/refs/compliance.md +117 -0
- package/skills/platform/compliance/refs/frameworks.md +282 -0
- package/skills/platform/errors/SKILL.md +183 -0
- package/skills/platform/errors/refs/patterns.md +271 -0
- package/skills/platform/errors/refs/severity.md +264 -0
- package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
- package/skills/platform/gh/refs/gh.md +105 -0
- package/skills/platform/gh-cli/SKILL.md +120 -0
- package/skills/platform/gh-cli/refs/automation.md +63 -0
- package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
- package/skills/platform/gh-cli/refs/patterns.md +132 -0
- package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
- package/skills/platform/github-actions/SKILL.md +159 -0
- package/skills/platform/github-actions/refs/security.md +150 -0
- package/skills/platform/github-actions/refs/templates.md +230 -0
- package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
- package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
- package/skills/platform/gitlab-ci/SKILL.md +140 -0
- package/skills/platform/gitlab-ci/refs/templates.md +223 -0
- package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
- package/skills/platform/glab-cli/SKILL.md +133 -0
- package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
- package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
- package/skills/platform/glab-cli/refs/patterns.md +131 -0
- package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
- package/skills/platform/health/SKILL.md +177 -0
- package/skills/platform/health/refs/health.md +72 -0
- package/skills/platform/health/refs/sources.md +302 -0
- package/skills/platform/incident/refs/incident.md +136 -0
- package/skills/platform/infra/refs/infra.md +104 -0
- package/skills/platform/observability/SKILL.md +128 -0
- package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
- package/skills/platform/prereq-doctor/SKILL.md +57 -0
- package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
- package/skills/platform/traces/refs/traces.md +101 -0
- package/skills/product/acceptance-criteria/SKILL.md +193 -0
- package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
- package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
- package/skills/product/accessibility/SKILL.md +197 -0
- package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
- package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
- package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
- package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
- package/skills/product/accessibility/refs/audit-report-results.md +276 -0
- package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
- package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
- package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
- package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
- package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
- package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
- package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
- package/skills/product/analyze/SKILL.md +164 -0
- package/skills/product/analyze/refs/algorithms.md +238 -0
- package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
- package/skills/product/imagery/SKILL.md +97 -0
- package/skills/product/imagery/alter/SKILL.md +105 -0
- package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
- package/skills/product/imagery/create/SKILL.md +109 -0
- package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
- package/skills/product/imagery/create/refs/provider-reference.md +219 -0
- package/skills/product/imagery/review/SKILL.md +101 -0
- package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
- package/skills/product/imagery/review/refs/quality-gates.md +153 -0
- package/skills/product/imagery/scripts/analyze.sh +23 -0
- package/skills/product/imagery/scripts/edit.sh +14 -0
- package/skills/product/imagery/scripts/generate.sh +13 -0
- package/skills/product/imagery/scripts/provider.py +787 -0
- package/skills/product/listen/SKILL.md +175 -0
- package/skills/product/listen/refs/channels.md +220 -0
- package/skills/product/mockup/SKILL.md +106 -0
- package/skills/product/mockup/refs/templates.md +95 -0
- package/skills/product/refs/a11y.md +109 -0
- package/skills/product/refs/acceptance.md +79 -0
- package/skills/product/refs/align.md +67 -0
- package/skills/product/refs/analyze.md +77 -0
- package/skills/product/refs/elicit.md +67 -0
- package/skills/product/refs/listen.md +58 -0
- package/skills/product/refs/mockup.md +77 -0
- package/skills/product/refs/screenshot.md +59 -0
- package/skills/product/refs/strategy.md +77 -0
- package/skills/product/refs/synthesize.md +54 -0
- package/skills/product/refs/ux-review.md +68 -0
- package/skills/product/refs/ux.md +101 -0
- package/skills/product/requirements-analysis/SKILL.md +136 -0
- package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
- package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
- package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
- package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
- package/skills/product/requirements-graph/SKILL.md +155 -0
- package/skills/product/requirements-graph/refs/examples.md +223 -0
- package/skills/product/requirements-graph/refs/schema.md +162 -0
- package/skills/product/requirements-migrate/SKILL.md +90 -0
- package/skills/product/requirements-navigate/SKILL.md +141 -0
- package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
- package/skills/product/screenshot/SKILL.md +147 -0
- package/skills/product/strategy/SKILL.md +198 -0
- package/skills/product/strategy/refs/frameworks.md +295 -0
- package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
- package/skills/product/strategy/refs/templates-roi-value.md +207 -0
- package/skills/product/synthesize/SKILL.md +116 -0
- package/skills/product/synthesize/refs/journey-mapping.md +212 -0
- package/skills/product/synthesize/refs/prioritization.md +193 -0
- package/skills/product/ux-review/SKILL.md +164 -0
- package/skills/product/visual-direction/SKILL.md +137 -0
- package/skills/product/visual-review/SKILL.md +131 -0
- package/skills/runtime-exec/SKILL.md +138 -0
- package/skills/search/codebase-narrator/SKILL.md +131 -0
- package/skills/search/codebase-narrator/refs/output-template.md +100 -0
- package/skills/smaht/SKILL.md +72 -0
- package/skills/smaht/discovery/SKILL.md +65 -0
- package/skills/smaht/intent/SKILL.md +89 -0
- package/skills/smaht/propose-skills/SKILL.md +142 -0
- package/skills/smaht/refs/state.md +76 -0
- package/skills/swarm/SKILL.md +132 -0
- package/skills/swarm/refs/fan-out.md +104 -0
- package/skills/swarm/refs/independent-verification.md +86 -0
- package/skills/swarm/refs/receipts-and-evidence.md +69 -0
- package/skills/swarm/refs/recon-synthesis.md +87 -0
- package/skills/swarm/refs/ship-discipline.md +90 -0
- package/skills/wickedizer/SKILL.md +147 -0
- package/skills/wickedizer/refs/artifact-types.md +238 -0
- package/skills/wickedizer/refs/complexity.md +278 -0
- package/skills/wickedizer/refs/de-ai-pass.md +140 -0
- package/skills/wickedizer/refs/failure-modes.md +249 -0
- package/skills/wickedizer/refs/patterns.md +282 -0
- package/skills/wickedizer/refs/review.md +221 -0
- package/skills/wickedizer/refs/structure.md +282 -0
- package/skills/wickedizer/refs/voice-profile.md +125 -0
- package/skills/workflow/SKILL.md +132 -0
- package/skills/workflow/refs/archetype-adjustments.md +205 -0
- package/skills/workflow/refs/evidence.md +58 -0
- package/skills/workflow/refs/integration.md +130 -0
- package/skills/workflow/refs/risk-dimension-signals.md +260 -0
- package/skills/workflow/refs/scoring-rubric.md +49 -0
- package/skills/workflow/refs/signal-keywords.md +176 -0
- package/skills/workflow/refs/specialist-routing-rules.md +159 -0
- package/skills/worktrees/SKILL.md +87 -0
- package/skills/worktrees/refs/recipes.md +96 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Anti-Patterns in Agentic Systems: Operational
|
|
6
|
+
|
|
7
|
+
Operational anti-patterns including Sequential Bottleneck, Context Bloat, Redundant Agents, Hardcoded Prompts, and Missing Timeouts.
|
|
8
|
+
|
|
9
|
+
## 6. Sequential Bottleneck
|
|
10
|
+
|
|
11
|
+
### Description
|
|
12
|
+
All work happens sequentially even when tasks are independent. Wastes time and resources through unnecessary serialization.
|
|
13
|
+
|
|
14
|
+
### Symptoms
|
|
15
|
+
- Total execution time is sum of all agent times
|
|
16
|
+
- Agents sit idle waiting for others
|
|
17
|
+
- No concurrent execution
|
|
18
|
+
- Low resource utilization
|
|
19
|
+
|
|
20
|
+
### Why It Happens
|
|
21
|
+
- Sequential pattern is easiest to implement
|
|
22
|
+
- Not identifying independent subtasks
|
|
23
|
+
- Lack of async/parallel execution
|
|
24
|
+
|
|
25
|
+
### How to Fix
|
|
26
|
+
|
|
27
|
+
**Before:**
|
|
28
|
+
```python
|
|
29
|
+
# Sequential execution: 30 seconds total
|
|
30
|
+
result1 = await agent1.process() # 10 seconds
|
|
31
|
+
result2 = await agent2.process() # 10 seconds
|
|
32
|
+
result3 = await agent3.process() # 10 seconds
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**After:**
|
|
36
|
+
```python
|
|
37
|
+
# Parallel execution: 10 seconds total
|
|
38
|
+
results = await asyncio.gather(
|
|
39
|
+
agent1.process(),
|
|
40
|
+
agent2.process(),
|
|
41
|
+
agent3.process()
|
|
42
|
+
)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Prevention
|
|
46
|
+
- Identify independent subtasks
|
|
47
|
+
- Use asyncio.gather() or similar for parallel execution
|
|
48
|
+
- Consider autonomous or collaborative patterns
|
|
49
|
+
- Profile execution to find bottlenecks
|
|
50
|
+
|
|
51
|
+
## 7. Context Bloat
|
|
52
|
+
|
|
53
|
+
### Description
|
|
54
|
+
Passing entire conversation history to every agent. Wasting tokens on irrelevant context. Slow and expensive.
|
|
55
|
+
|
|
56
|
+
### Symptoms
|
|
57
|
+
- Each agent receives 50k+ token context
|
|
58
|
+
- Most context is irrelevant to agent's task
|
|
59
|
+
- High costs and latency
|
|
60
|
+
- Hitting context window limits
|
|
61
|
+
|
|
62
|
+
### Why It Happens
|
|
63
|
+
- "More context is better" assumption
|
|
64
|
+
- Easy to pass everything vs. filtering
|
|
65
|
+
- Not understanding what each agent needs
|
|
66
|
+
|
|
67
|
+
### How to Fix
|
|
68
|
+
|
|
69
|
+
**Before:**
|
|
70
|
+
```python
|
|
71
|
+
# Pass entire history to specialist
|
|
72
|
+
await specialist.process(entire_conversation_history)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**After:**
|
|
76
|
+
```python
|
|
77
|
+
# Extract only relevant context
|
|
78
|
+
relevant_context = self.extract_relevant_context(
|
|
79
|
+
full_history,
|
|
80
|
+
specialist.needs
|
|
81
|
+
)
|
|
82
|
+
await specialist.process(relevant_context)
|
|
83
|
+
|
|
84
|
+
def extract_relevant_context(self, history, needs):
|
|
85
|
+
# Only include messages relevant to this specialist
|
|
86
|
+
return [
|
|
87
|
+
msg for msg in history
|
|
88
|
+
if self.is_relevant(msg, needs)
|
|
89
|
+
]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Prevention
|
|
93
|
+
- Give each agent only what it needs
|
|
94
|
+
- Compress or summarize old context
|
|
95
|
+
- Use retrieval instead of passing everything
|
|
96
|
+
- Implement context window budgets per agent
|
|
97
|
+
|
|
98
|
+
## 8. Redundant Agents
|
|
99
|
+
|
|
100
|
+
### Description
|
|
101
|
+
Multiple agents doing the same thing. Wasted resources and complexity without benefit.
|
|
102
|
+
|
|
103
|
+
### Symptoms
|
|
104
|
+
- Two agents with identical tools and instructions
|
|
105
|
+
- Same task being done multiple times
|
|
106
|
+
- Agents overriding each other's work
|
|
107
|
+
|
|
108
|
+
### How to Fix
|
|
109
|
+
Consolidate into single agent or use agent pool:
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
# Instead of redundant agents
|
|
113
|
+
agent1 = Agent(tools=[code_review], instructions="Review code")
|
|
114
|
+
agent2 = Agent(tools=[code_review], instructions="Review code")
|
|
115
|
+
|
|
116
|
+
# Use single agent or agent pool
|
|
117
|
+
review_agent = Agent(tools=[code_review], instructions="Review code")
|
|
118
|
+
|
|
119
|
+
# Or if need concurrency, use pool of identical agents
|
|
120
|
+
review_pool = AgentPool(
|
|
121
|
+
agent_factory=lambda: Agent(tools=[code_review], instructions="Review code"),
|
|
122
|
+
pool_size=3
|
|
123
|
+
)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## 9. Hardcoded Prompts
|
|
127
|
+
|
|
128
|
+
### Description
|
|
129
|
+
System prompts and instructions baked into code. Hard to iterate, version, and A/B test.
|
|
130
|
+
|
|
131
|
+
### Symptoms
|
|
132
|
+
- Prompts scattered throughout codebase
|
|
133
|
+
- Can't change prompts without code deployment
|
|
134
|
+
- No version control for prompts
|
|
135
|
+
- Can't A/B test prompt variations
|
|
136
|
+
|
|
137
|
+
### How to Fix
|
|
138
|
+
|
|
139
|
+
**Before:**
|
|
140
|
+
```python
|
|
141
|
+
class Agent:
|
|
142
|
+
def __init__(self):
|
|
143
|
+
self.prompt = "You are a helpful assistant that..." # Hardcoded
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**After:**
|
|
147
|
+
```python
|
|
148
|
+
# Externalize prompts
|
|
149
|
+
class Agent:
|
|
150
|
+
def __init__(self, prompt_template_path):
|
|
151
|
+
self.template = self.load_template(prompt_template_path)
|
|
152
|
+
|
|
153
|
+
def load_template(self, path):
|
|
154
|
+
# Load from file, database, or config service
|
|
155
|
+
return Template.from_file(path)
|
|
156
|
+
|
|
157
|
+
# Version control and manage prompts separately
|
|
158
|
+
prompts/
|
|
159
|
+
agent-v1.txt
|
|
160
|
+
agent-v2.txt
|
|
161
|
+
agent-v3.txt
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Prevention
|
|
165
|
+
- Store prompts in separate files or configuration
|
|
166
|
+
- Version prompts alongside code
|
|
167
|
+
- Use template systems for dynamic prompts
|
|
168
|
+
- Enable runtime prompt updates
|
|
169
|
+
|
|
170
|
+
## 10. Missing Timeouts
|
|
171
|
+
|
|
172
|
+
### Description
|
|
173
|
+
Agents can run forever. No time or resource limits. Can hang indefinitely or consume unlimited resources.
|
|
174
|
+
|
|
175
|
+
### Symptoms
|
|
176
|
+
- Agents occasionally never return
|
|
177
|
+
- Resource exhaustion (memory, tokens, API quota)
|
|
178
|
+
- No way to detect or recover from hangs
|
|
179
|
+
|
|
180
|
+
### How to Fix
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
class Agent:
|
|
184
|
+
def __init__(self, max_runtime=60, max_tokens=10000, max_iterations=10):
|
|
185
|
+
self.max_runtime = max_runtime
|
|
186
|
+
self.max_tokens = max_tokens
|
|
187
|
+
self.max_iterations = max_iterations
|
|
188
|
+
|
|
189
|
+
async def process(self, input):
|
|
190
|
+
# Time limit
|
|
191
|
+
timeout = asyncio.timeout(self.max_runtime)
|
|
192
|
+
|
|
193
|
+
async with timeout:
|
|
194
|
+
tokens_used = 0
|
|
195
|
+
iterations = 0
|
|
196
|
+
|
|
197
|
+
while not done:
|
|
198
|
+
# Iteration limit
|
|
199
|
+
iterations += 1
|
|
200
|
+
if iterations > self.max_iterations:
|
|
201
|
+
raise MaxIterationsError()
|
|
202
|
+
|
|
203
|
+
result = await self.llm.generate(...)
|
|
204
|
+
|
|
205
|
+
# Token budget
|
|
206
|
+
tokens_used += result.tokens
|
|
207
|
+
if tokens_used > self.max_tokens:
|
|
208
|
+
raise TokenBudgetExceededError()
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Prevention
|
|
212
|
+
- Set timeouts on all async operations
|
|
213
|
+
- Implement token budgets
|
|
214
|
+
- Limit loop iterations
|
|
215
|
+
- Add circuit breakers for external calls
|
|
216
|
+
- Monitor resource usage
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Pattern Catalog
|
|
6
|
+
|
|
7
|
+
Detailed reference for agentic architecture patterns with implementation guidance.
|
|
8
|
+
|
|
9
|
+
## Sequential Pattern
|
|
10
|
+
|
|
11
|
+
### Description
|
|
12
|
+
Agents execute in a fixed linear order. Each agent receives the output of the previous agent and produces input for the next agent. The simplest coordination pattern.
|
|
13
|
+
|
|
14
|
+
### When to Use
|
|
15
|
+
- Workflow has clear stages that must happen in order
|
|
16
|
+
- Each stage depends on completion of previous stage
|
|
17
|
+
- Task naturally decomposes into pipeline steps
|
|
18
|
+
- Predictable, repeatable process
|
|
19
|
+
|
|
20
|
+
### When NOT to Use
|
|
21
|
+
- Stages are independent and could run in parallel
|
|
22
|
+
- Need adaptive routing based on intermediate results
|
|
23
|
+
- Any stage might need to loop back to previous stages
|
|
24
|
+
|
|
25
|
+
### Implementation Example
|
|
26
|
+
|
|
27
|
+
```python
|
|
28
|
+
class SequentialPipeline:
|
|
29
|
+
def __init__(self, agents):
|
|
30
|
+
self.agents = agents
|
|
31
|
+
|
|
32
|
+
async def execute(self, initial_input):
|
|
33
|
+
current_output = initial_input
|
|
34
|
+
for agent in self.agents:
|
|
35
|
+
current_output = await agent.process(current_output)
|
|
36
|
+
return current_output
|
|
37
|
+
|
|
38
|
+
# Usage
|
|
39
|
+
pipeline = SequentialPipeline([
|
|
40
|
+
ResearchAgent(),
|
|
41
|
+
AnalysisAgent(),
|
|
42
|
+
DraftAgent(),
|
|
43
|
+
ReviewAgent()
|
|
44
|
+
])
|
|
45
|
+
result = await pipeline.execute({"topic": "AI Safety"})
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Variations
|
|
49
|
+
- **With Checkpoints:** Save state after each agent for resume/replay
|
|
50
|
+
- **With Validation:** Add validation gates between agents
|
|
51
|
+
- **With Parallel Stages:** Allow some stages to fan out and merge back
|
|
52
|
+
|
|
53
|
+
### Observability
|
|
54
|
+
Track stage completion, duration, inter-stage data size, and failure points.
|
|
55
|
+
|
|
56
|
+
## Hierarchical Pattern
|
|
57
|
+
|
|
58
|
+
### Description
|
|
59
|
+
A parent agent decomposes work and delegates to specialized child agents. Parent is responsible for task decomposition, delegation, and result aggregation.
|
|
60
|
+
|
|
61
|
+
### When to Use
|
|
62
|
+
- Complex task naturally decomposes into subtasks
|
|
63
|
+
- Subtasks require different specializations
|
|
64
|
+
- Need centralized coordination and monitoring
|
|
65
|
+
- Want to scale by adding more specialized agents
|
|
66
|
+
|
|
67
|
+
### When NOT to Use
|
|
68
|
+
- Task is not decomposable
|
|
69
|
+
- Overhead of delegation exceeds benefits
|
|
70
|
+
- Need flat peer collaboration without hierarchy
|
|
71
|
+
|
|
72
|
+
### Implementation Example
|
|
73
|
+
|
|
74
|
+
```python
|
|
75
|
+
class HierarchicalAgent:
|
|
76
|
+
def __init__(self, specialists):
|
|
77
|
+
self.specialists = specialists
|
|
78
|
+
|
|
79
|
+
async def execute(self, task):
|
|
80
|
+
# Parent agent plans decomposition
|
|
81
|
+
plan = await self.decompose_task(task)
|
|
82
|
+
|
|
83
|
+
# Delegate to specialists
|
|
84
|
+
subtask_results = []
|
|
85
|
+
for subtask in plan.subtasks:
|
|
86
|
+
specialist = self.specialists[subtask.type]
|
|
87
|
+
result = await specialist.execute(subtask)
|
|
88
|
+
subtask_results.append(result)
|
|
89
|
+
|
|
90
|
+
# Aggregate results
|
|
91
|
+
return await self.aggregate(subtask_results)
|
|
92
|
+
|
|
93
|
+
async def decompose_task(self, task):
|
|
94
|
+
# Parent agent reasons about task decomposition
|
|
95
|
+
prompt = f"""Break down this task into subtasks:
|
|
96
|
+
{task}
|
|
97
|
+
|
|
98
|
+
Available specialists: {list(self.specialists.keys())}
|
|
99
|
+
Return JSON plan."""
|
|
100
|
+
return await self.llm.generate(prompt)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Variations
|
|
104
|
+
Dynamic delegation (parent adapts on subtask results), multi-level hierarchy (specialists are themselves hierarchical), load balancing across specialist instances.
|
|
105
|
+
|
|
106
|
+
### Common Pitfalls
|
|
107
|
+
Deep nesting (>3 levels), parent micromanagement limiting specialist autonomy, parent becoming a bottleneck or single point of failure.
|
|
108
|
+
|
|
109
|
+
## Collaborative Pattern
|
|
110
|
+
|
|
111
|
+
### Description
|
|
112
|
+
Multiple peer agents work together on a shared problem without fixed hierarchy. Agents contribute their perspectives and a consensus or synthesis mechanism combines results.
|
|
113
|
+
|
|
114
|
+
### When to Use
|
|
115
|
+
- Problem benefits from diverse expert viewpoints
|
|
116
|
+
- No single agent has complete information
|
|
117
|
+
- Quality improves with multiple perspectives (e.g., review, evaluation)
|
|
118
|
+
- Need checks and balances
|
|
119
|
+
|
|
120
|
+
### When NOT to Use
|
|
121
|
+
- Clear hierarchy exists or is desirable
|
|
122
|
+
- Problem has single correct answer
|
|
123
|
+
- Coordination overhead exceeds benefits
|
|
124
|
+
- Need fast, decisive action
|
|
125
|
+
|
|
126
|
+
### Implementation Example
|
|
127
|
+
|
|
128
|
+
```python
|
|
129
|
+
class CollaborativeSystem:
|
|
130
|
+
def __init__(self, agents, consensus_fn):
|
|
131
|
+
self.agents = agents
|
|
132
|
+
self.consensus_fn = consensus_fn
|
|
133
|
+
|
|
134
|
+
async def solve(self, problem):
|
|
135
|
+
# All agents work on problem independently
|
|
136
|
+
proposals = []
|
|
137
|
+
for agent in self.agents:
|
|
138
|
+
proposal = await agent.propose_solution(problem)
|
|
139
|
+
proposals.append(proposal)
|
|
140
|
+
|
|
141
|
+
# Reach consensus
|
|
142
|
+
return await self.consensus_fn(proposals)
|
|
143
|
+
|
|
144
|
+
# Consensus strategies
|
|
145
|
+
async def voting_consensus(proposals):
|
|
146
|
+
# Simple majority vote
|
|
147
|
+
return max(set(proposals), key=proposals.count)
|
|
148
|
+
|
|
149
|
+
async def synthesis_consensus(proposals):
|
|
150
|
+
# LLM synthesizes proposals into unified solution
|
|
151
|
+
prompt = f"""Given these expert proposals:
|
|
152
|
+
{proposals}
|
|
153
|
+
|
|
154
|
+
Synthesize the best elements into a unified solution."""
|
|
155
|
+
return await llm.generate(prompt)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Variations
|
|
159
|
+
- **With Debate:** Agents critique each other's proposals iteratively
|
|
160
|
+
- **With Facilitator:** Add a non-voting facilitator agent to guide discussion
|
|
161
|
+
- **Weighted Voting:** Different agents have different vote weights
|
|
162
|
+
|
|
163
|
+
### Consensus Mechanisms
|
|
164
|
+
Majority Vote (simple), Synthesis (rich but expensive), First-to-N (fast), Veto-Based (any agent blocks unsafe proposals).
|
|
165
|
+
|
|
166
|
+
## Autonomous Pattern
|
|
167
|
+
|
|
168
|
+
### Description
|
|
169
|
+
Agents operate independently with minimal or no coordination. Each agent has its own goals and operates on its own schedule.
|
|
170
|
+
|
|
171
|
+
### When to Use
|
|
172
|
+
- Tasks are truly independent
|
|
173
|
+
- Need maximum parallelism and throughput
|
|
174
|
+
- Agents monitor different domains
|
|
175
|
+
- Loose coupling is desired
|
|
176
|
+
|
|
177
|
+
### When NOT to Use
|
|
178
|
+
- Agents need to share information or coordinate
|
|
179
|
+
- Tasks have dependencies
|
|
180
|
+
- Need consistent global state
|
|
181
|
+
- Resource contention is an issue
|
|
182
|
+
|
|
183
|
+
### Implementation Example
|
|
184
|
+
|
|
185
|
+
```python
|
|
186
|
+
class AutonomousAgentPool:
|
|
187
|
+
def __init__(self, agents):
|
|
188
|
+
self.agents = agents
|
|
189
|
+
|
|
190
|
+
async def run(self):
|
|
191
|
+
# Launch all agents independently
|
|
192
|
+
tasks = [agent.run() for agent in self.agents]
|
|
193
|
+
await asyncio.gather(*tasks)
|
|
194
|
+
|
|
195
|
+
# Each agent runs its own loop
|
|
196
|
+
class MonitoringAgent:
|
|
197
|
+
async def run(self):
|
|
198
|
+
while True:
|
|
199
|
+
status = await self.check_service()
|
|
200
|
+
if status.is_unhealthy():
|
|
201
|
+
await self.alert(status)
|
|
202
|
+
await asyncio.sleep(self.interval)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Coordination Patterns
|
|
206
|
+
Even autonomous agents may need minimal coordination via shared event bus, shared state store, or rate limiting to stay under global limits.
|
|
207
|
+
|
|
208
|
+
## Human-in-the-Loop Pattern
|
|
209
|
+
|
|
210
|
+
### Description
|
|
211
|
+
Agent execution includes explicit gates where a human approves, rejects, or modifies a proposed action before it takes effect. The human is part of the control loop, not just a downstream consumer. Human-in-the-Loop (HITL) sits naturally on top of any other pattern in this catalog — a workflow can have one HITL gate before a high-stakes step or many gates throughout.
|
|
212
|
+
|
|
213
|
+
### When to Use
|
|
214
|
+
- High-stakes decisions where an unreviewed agent action could cause material harm (sending external email, paying invoices, altering production state)
|
|
215
|
+
- Regulatory or compliance regimes that require a human sign-off in the audit trail
|
|
216
|
+
- Tasks where the agent's confidence is low and human judgment is the cheapest correction
|
|
217
|
+
- Early deployment of a new agent capability — gates are a useful safety scaffold while trust is being built and metered down later
|
|
218
|
+
|
|
219
|
+
### When NOT to Use
|
|
220
|
+
- Hot-path or latency-sensitive workflows where pause-for-approval defeats the purpose
|
|
221
|
+
- High-volume actions where the human review queue would saturate
|
|
222
|
+
- Decisions that are reversible cheaply — an undo button is often a better trade-off than a gate
|
|
223
|
+
- The human reviewer cannot meaningfully evaluate the proposed action (no context, no UI, no time)
|
|
224
|
+
|
|
225
|
+
### Variations
|
|
226
|
+
- **Pre-approval gate** — human approves before any side effect happens
|
|
227
|
+
- **Post-execution review** — agent acts, human reviews and rolls back if needed (only when reversal is safe)
|
|
228
|
+
- **Sampled review** — only every Nth action is gated; balances coverage vs throughput
|
|
229
|
+
- **Risk-tiered gating** — low-risk actions auto-proceed, medium-risk get sampled review, high-risk always block on a human
|
|
230
|
+
|
|
231
|
+
### Common Pitfalls
|
|
232
|
+
Approval fatigue (humans rubber-stamp without reading), implicit bypass paths (the gate only fires on the happy path), no audit trail of who approved what, and gates that block without timeout (a missing reviewer halts the whole pipeline).
|
|
233
|
+
|
|
234
|
+
## ReAct Pattern
|
|
235
|
+
|
|
236
|
+
### Description
|
|
237
|
+
Agent follows Reason → Act → Observe cycle. Agent reasons about what to do next, executes an action, observes the result, and repeats until task is complete.
|
|
238
|
+
|
|
239
|
+
### When to Use
|
|
240
|
+
- Environment is dynamic or partially observable
|
|
241
|
+
- Need adaptive behavior based on feedback
|
|
242
|
+
- Can't plan all steps upfront
|
|
243
|
+
- Debugging, exploration, or research tasks
|
|
244
|
+
|
|
245
|
+
### When NOT to Use
|
|
246
|
+
- Environment is fully predictable
|
|
247
|
+
- Planning overhead is too high
|
|
248
|
+
- Need guaranteed completion time
|
|
249
|
+
- Token budget is constrained
|
|
250
|
+
|
|
251
|
+
### Implementation Example
|
|
252
|
+
|
|
253
|
+
```python
|
|
254
|
+
class ReActAgent:
|
|
255
|
+
async def solve(self, task):
|
|
256
|
+
context = {"task": task, "observations": []}
|
|
257
|
+
|
|
258
|
+
while not self.is_complete(context):
|
|
259
|
+
# Reason about next action
|
|
260
|
+
thought = await self.reason(context)
|
|
261
|
+
|
|
262
|
+
# Execute action
|
|
263
|
+
action = thought.action
|
|
264
|
+
result = await self.execute_action(action)
|
|
265
|
+
|
|
266
|
+
# Observe result
|
|
267
|
+
observation = self.observe(result)
|
|
268
|
+
context["observations"].append(observation)
|
|
269
|
+
|
|
270
|
+
return self.extract_answer(context)
|
|
271
|
+
|
|
272
|
+
async def reason(self, context):
|
|
273
|
+
prompt = f"""Task: {context['task']}
|
|
274
|
+
|
|
275
|
+
Previous observations:
|
|
276
|
+
{context['observations']}
|
|
277
|
+
|
|
278
|
+
What should I do next?
|
|
279
|
+
Think step-by-step, then specify an action."""
|
|
280
|
+
return await self.llm.generate(prompt)
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Variations
|
|
284
|
+
- **With Memory:** Maintain long-term memory of successful strategies
|
|
285
|
+
- **With Planning:** Create rough plan but adapt based on observations
|
|
286
|
+
- **With Reflection:** Periodically reflect on strategy effectiveness
|
|
287
|
+
|
|
288
|
+
## Plan-Execute Pattern
|
|
289
|
+
|
|
290
|
+
### Description
|
|
291
|
+
Agent creates a complete execution plan upfront, then executes all steps. Planning and execution are separate phases.
|
|
292
|
+
|
|
293
|
+
### When to Use
|
|
294
|
+
- Environment is predictable and stable
|
|
295
|
+
- Planning cost is justified (complex dependencies, resource optimization)
|
|
296
|
+
- Need to validate plan before execution
|
|
297
|
+
|
|
298
|
+
### When NOT to Use
|
|
299
|
+
- Environment changes during execution
|
|
300
|
+
- Planning overhead exceeds execution savings
|
|
301
|
+
- Need to start execution quickly
|
|
302
|
+
|
|
303
|
+
### Planning Strategies
|
|
304
|
+
- **Forward Planning:** Start from initial state, plan steps to goal
|
|
305
|
+
- **Backward Planning:** Start from goal, plan steps back to initial state
|
|
306
|
+
- **Hierarchical Planning:** Plan high-level strategy, then detailed tactics
|
|
307
|
+
|
|
308
|
+
## Reflection Pattern
|
|
309
|
+
|
|
310
|
+
### Description
|
|
311
|
+
Agent reviews its own outputs and iteratively improves them through self-critique and refinement.
|
|
312
|
+
|
|
313
|
+
### When to Use
|
|
314
|
+
- Quality matters more than speed; initial output is expected to be imperfect
|
|
315
|
+
- Cost of iteration is acceptable and clear quality criteria exist
|
|
316
|
+
|
|
317
|
+
### When NOT to Use
|
|
318
|
+
- Latency is critical, token budget is tight, or no clear improvement criteria
|
|
319
|
+
|
|
320
|
+
### Variations
|
|
321
|
+
- **With External Critic:** Separate critic agent reviews producer's output
|
|
322
|
+
- **With Multiple Critics:** Different critics focus on different quality dimensions
|
|
323
|
+
- **With Human Feedback:** Human reviews and guides refinement
|
|
324
|
+
|
|
325
|
+
### Termination Conditions
|
|
326
|
+
- **Fixed Iterations:** Stop after N iterations
|
|
327
|
+
- **Quality Threshold:** Stop when quality score exceeds threshold
|
|
328
|
+
- **Diminishing Returns:** Stop when improvements become marginal
|
|
329
|
+
- **Token Budget:** Stop when token budget is exhausted
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-engineering
|
|
3
|
+
description: |
|
|
4
|
+
Context window management, token optimization, and memory patterns for efficient multi-agent systems.
|
|
5
|
+
|
|
6
|
+
Use when: optimizing token usage in an agentic pipeline, designing memory
|
|
7
|
+
scope for short / long-term / episodic state, or applying a context-loading
|
|
8
|
+
strategy (anticipatory / JIT / hybrid).
|
|
9
|
+
portability: portable
|
|
10
|
+
phase_relevance: ["design", "review"]
|
|
11
|
+
archetype_relevance: ["*"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Context Engineering
|
|
15
|
+
|
|
16
|
+
Techniques for managing context windows, optimizing token usage, and designing efficient memory systems for agentic applications.
|
|
17
|
+
|
|
18
|
+
## Context Window Fundamentals
|
|
19
|
+
|
|
20
|
+
**Context Window:** Maximum tokens an LLM can process in a single request (input + output).
|
|
21
|
+
|
|
22
|
+
Limits vary by provider and model. Check the active model's documentation for
|
|
23
|
+
the exact value.
|
|
24
|
+
|
|
25
|
+
**Token Efficiency Matters:**
|
|
26
|
+
- Cost: Charged per token (input + output)
|
|
27
|
+
- Latency: More tokens = slower response
|
|
28
|
+
- Quality: Irrelevant context can confuse model
|
|
29
|
+
|
|
30
|
+
## State Management Patterns
|
|
31
|
+
|
|
32
|
+
| Pattern | Use when | Pros | Cons |
|
|
33
|
+
|---------|----------|------|------|
|
|
34
|
+
| **Shared** | Agents need synchronized view | Consistency, simple coordination | Contention, single point of failure |
|
|
35
|
+
| **Isolated** | Agents operate independently | No contention, parallel execution | Inconsistency possible, harder to coordinate |
|
|
36
|
+
| **Checkpointed** | Long-running processes, need recovery | Fault tolerance, replayability | Storage overhead, consistency complexity |
|
|
37
|
+
|
|
38
|
+
## Token Optimization Techniques
|
|
39
|
+
|
|
40
|
+
### 1. Aggressive Summarization
|
|
41
|
+
Compress old context into summaries to reduce token usage.
|
|
42
|
+
|
|
43
|
+
### 2. Selective Context Loading
|
|
44
|
+
Only load relevant context based on the current task.
|
|
45
|
+
|
|
46
|
+
### 3. Structured Compression
|
|
47
|
+
Use JSON/structured formats instead of prose to reduce tokens.
|
|
48
|
+
|
|
49
|
+
**Example:**
|
|
50
|
+
- Before: "The user's name is John Smith..." (verbose)
|
|
51
|
+
- After: `{"name": "John Smith", ...}` (compact)
|
|
52
|
+
|
|
53
|
+
### 4. Lazy Loading
|
|
54
|
+
Load details only when explicitly needed.
|
|
55
|
+
|
|
56
|
+
### 5. Reference Instead of Embedding
|
|
57
|
+
Reference external documents instead of embedding full text.
|
|
58
|
+
|
|
59
|
+
See `refs/selective-loading.md` and `refs/caching-and-optimization.md` for code examples and detailed strategies.
|
|
60
|
+
|
|
61
|
+
## Memory Patterns
|
|
62
|
+
|
|
63
|
+
| Memory | Scope | Size | Retention |
|
|
64
|
+
|--------|-------|------|-----------|
|
|
65
|
+
| **Short-term (working)** | Current session/task | 1K-10K tokens | Minutes to hours |
|
|
66
|
+
| **Long-term** | Cross-session, permanent | Unbounded (vector DB) | Days to forever |
|
|
67
|
+
| **Episodic** | Historical events | Summaries stored | Varies by importance |
|
|
68
|
+
|
|
69
|
+
See `refs/compression-techniques.md` for implementation patterns.
|
|
70
|
+
|
|
71
|
+
## Prompt Engineering for Agents
|
|
72
|
+
|
|
73
|
+
### Role Definition
|
|
74
|
+
Be specific about agent's role and boundaries.
|
|
75
|
+
|
|
76
|
+
**Example:**
|
|
77
|
+
```
|
|
78
|
+
You are a Python code reviewer specializing in security.
|
|
79
|
+
Your job is to identify security vulnerabilities.
|
|
80
|
+
You do NOT review style or performance.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Task Specification
|
|
84
|
+
Clear, actionable instructions with explicit format.
|
|
85
|
+
|
|
86
|
+
**Bad:** "Review this code."
|
|
87
|
+
**Good:** "Review for security: 1) SQL injection 2) Input validation 3) Secrets. Output: JSON with vulnerabilities."
|
|
88
|
+
|
|
89
|
+
### Format Control
|
|
90
|
+
Specify exact output format to reduce tokens.
|
|
91
|
+
|
|
92
|
+
### Few-Shot Examples
|
|
93
|
+
Show examples for complex tasks.
|
|
94
|
+
|
|
95
|
+
See `refs/selective-loading.md` for detailed prompting patterns.
|
|
96
|
+
|
|
97
|
+
## Context Loading Strategies
|
|
98
|
+
|
|
99
|
+
| Strategy | Pros | Cons |
|
|
100
|
+
|----------|------|------|
|
|
101
|
+
| **Anticipatory** | Faster response time (load before needed) | May load unnecessary data |
|
|
102
|
+
| **Just-in-Time (JIT)** | Minimal token usage (load only when needed) | Latency on each request |
|
|
103
|
+
| **Hybrid** | Balanced (core context + JIT for task-specific) | More complex implementation |
|
|
104
|
+
|
|
105
|
+
## Cost Modeling
|
|
106
|
+
|
|
107
|
+
### Token Cost Calculation
|
|
108
|
+
Track input and output tokens separately. Rates vary by model (typically $0.003-0.075 per 1K tokens).
|
|
109
|
+
|
|
110
|
+
### Budget Enforcement
|
|
111
|
+
Set hard token limits per agent/session to prevent runaway costs.
|
|
112
|
+
|
|
113
|
+
### Multi-Agent Cost Attribution
|
|
114
|
+
Track costs per agent to identify expensive components.
|
|
115
|
+
|
|
116
|
+
See `refs/cost-calculation-budget.md` and `refs/cost-optimization-reporting.md` for detailed cost strategies.
|
|
117
|
+
|
|
118
|
+
## Context Window Strategies by Agent Pattern
|
|
119
|
+
|
|
120
|
+
**Sequential Pattern:** Pass only output of previous agent, not entire chain.
|
|
121
|
+
|
|
122
|
+
**Hierarchical Pattern:** Parent gets summaries from children, children get only relevant task context.
|
|
123
|
+
|
|
124
|
+
**Collaborative Pattern:** Shared context (compressed), each agent adds only delta.
|
|
125
|
+
|
|
126
|
+
**Autonomous Pattern:** Minimal shared context, isolated context per agent.
|
|
127
|
+
|
|
128
|
+
## Quick Wins
|
|
129
|
+
|
|
130
|
+
1. **Compress old messages:** Summarize history > 20 messages
|
|
131
|
+
2. **Use structured outputs:** JSON instead of prose
|
|
132
|
+
3. **Lazy load details:** Only when needed
|
|
133
|
+
4. **Set token budgets:** Hard limits per agent/session
|
|
134
|
+
5. **Monitor token usage:** Track and optimize high-cost agents
|
|
135
|
+
|
|
136
|
+
## References
|
|
137
|
+
|
|
138
|
+
- `refs/compression-techniques.md` - Conversation summarization, deduplication, entity compression
|
|
139
|
+
- `refs/selective-loading.md` - Relevance filtering, time decay, token-budgeted retrieval
|
|
140
|
+
- `refs/caching-and-optimization.md` - Prompt caching, semantic caching, batching, cost-aware model selection
|
|
141
|
+
- `refs/cost-calculation-budget.md` - Token pricing, cost calculation, budget management
|
|
142
|
+
- `refs/cost-optimization-reporting.md` - Cost estimation, optimization strategies, reporting
|