ultimate-pi 0.18.1 → 0.19.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/.agents/skills/harness-debate-plan/SKILL.md +1 -1
- package/.agents/skills/harness-decisions/SKILL.md +1 -2
- package/.agents/skills/harness-governor/SKILL.md +6 -5
- package/.agents/skills/web-retrieval/SKILL.md +163 -0
- package/.agents/skills/wiki-autoresearch/SKILL.md +6 -6
- package/.pi/PACKAGING.md +4 -4
- package/.pi/SYSTEM.md +75 -123
- package/.pi/agents/harness/incident-recorder.md +0 -1
- package/.pi/agents/harness/planning/decompose.md +0 -2
- package/.pi/agents/harness/planning/execution-plan-author.md +0 -2
- package/.pi/agents/harness/planning/hypothesis-validator.md +0 -2
- package/.pi/agents/harness/planning/hypothesis.md +0 -2
- package/.pi/agents/harness/planning/implementation-researcher.md +1 -3
- package/.pi/agents/harness/planning/plan-adversary.md +0 -2
- package/.pi/agents/harness/planning/plan-evaluator.md +1 -3
- package/.pi/agents/harness/planning/planning-context.md +0 -2
- package/.pi/agents/harness/planning/review-integrator.md +0 -2
- package/.pi/agents/harness/planning/sprint-contract-auditor.md +0 -2
- package/.pi/agents/harness/planning/stack-researcher.md +5 -3
- package/.pi/agents/harness/reviewing/adversary.md +0 -2
- package/.pi/agents/harness/reviewing/evaluator.md +0 -2
- package/.pi/agents/harness/reviewing/tie-breaker.md +0 -2
- package/.pi/agents/harness/running/executor.md +0 -2
- package/.pi/agents/harness/sentrux-bootstrap.md +0 -1
- package/.pi/agents/harness/sentrux-steward.md +0 -2
- package/.pi/agents/harness/trace-librarian.md +0 -1
- package/.pi/agents/harness/web-retrieval/web-answerer.md +35 -0
- package/.pi/agents/harness/web-retrieval/web-criteria-verifier.md +28 -0
- package/.pi/agents/harness/web-retrieval/web-gap-analyzer.md +31 -0
- package/.pi/agents/harness/web-retrieval/web-query-expander-fast.md +34 -0
- package/.pi/agents/harness/web-retrieval/web-query-expander.md +60 -0
- package/.pi/agents/harness/web-retrieval/web-summarizer.md +18 -0
- package/.pi/extensions/agt-kill-switch.ts +57 -0
- package/.pi/extensions/agt-prompt-guard.ts +32 -0
- package/.pi/extensions/custom-footer.ts +46 -145
- package/.pi/extensions/custom-header.ts +1 -1
- package/.pi/extensions/custom-system-prompt.ts +1 -1
- package/.pi/extensions/debate-orchestrator.ts +6 -6
- package/.pi/extensions/harness-ask-user.ts +7 -7
- package/.pi/extensions/harness-debate-tools.ts +26 -42
- package/.pi/extensions/harness-lens.ts +94 -0
- package/.pi/extensions/harness-plan-approval.ts +11 -11
- package/.pi/extensions/harness-run-context.ts +1070 -876
- package/.pi/extensions/harness-subagent-governance.ts +8 -0
- package/.pi/extensions/harness-subagent-submit.ts +34 -163
- package/.pi/extensions/harness-subagents.ts +3 -3
- package/.pi/extensions/harness-telemetry.ts +2 -2
- package/.pi/extensions/harness-web-guard.ts +2 -1
- package/.pi/extensions/harness-web-tools.ts +691 -53
- package/.pi/extensions/policy-gate.ts +25 -5
- package/.pi/extensions/sentrux-rules-sync.ts +1 -1
- package/.pi/extensions/subagent-governance.ts +92 -0
- package/.pi/extensions/trace-recorder.ts +1 -1
- package/.pi/extensions/{ultimate-pi-vcc.ts → vcc-compaction.ts} +1 -1
- package/.pi/harness/README.md +6 -2
- package/.pi/harness/agents.manifest.json +46 -25
- package/.pi/harness/agents.policy.yaml +309 -0
- package/.pi/harness/docs/adrs/0030-inhouse-vcc-compaction.md +1 -1
- package/.pi/harness/docs/adrs/0035-plan-phase-review-gate.md +1 -1
- package/.pi/harness/docs/adrs/0045-harness-lens-minimal-contract.md +49 -0
- package/.pi/harness/docs/adrs/0046-agt-policy-engine.md +51 -0
- package/.pi/harness/docs/adrs/0047-agt-layered-security.md +39 -0
- package/.pi/harness/docs/adrs/0048-tool-call-hook-order.md +25 -0
- package/.pi/harness/docs/adrs/0049-agents-policy-manifest.md +36 -0
- package/.pi/harness/docs/adrs/0050-agentic-web-retrieval-stack.md +46 -0
- package/.pi/harness/docs/adrs/README.md +5 -0
- package/.pi/harness/docs/harness-web-search.md +97 -0
- package/.pi/harness/env.harness.template +9 -1
- package/.pi/harness/evolution/README.md +1 -2
- package/.pi/harness/examples/agents.policy.project.yaml +19 -0
- package/.pi/harness/examples/policies/custom-deny-bash.yaml +9 -0
- package/.pi/harness/examples/web-heuristic-angles.project.yaml +22 -0
- package/.pi/harness/policies/bash-denylists.yaml +5 -0
- package/.pi/harness/policies/defaults.yaml +51 -0
- package/.pi/harness/policies/orchestrator.yaml +18 -0
- package/.pi/harness/policies/phases.yaml +10 -0
- package/.pi/harness/policies/roles.yaml +5 -0
- package/.pi/harness/policies/web-guard.yaml +5 -0
- package/.pi/harness/policies/workflow-sequences.yaml +9 -0
- package/.pi/harness/sentrux/architecture.manifest.json +26 -4
- package/.pi/harness/specs/observation.schema.json +2 -1
- package/.pi/harness/web-heuristic-angles.json +278 -0
- package/.pi/harness/web-heuristic-angles.yaml +182 -0
- package/.pi/lib/agents-policy.d.mts +70 -0
- package/.pi/lib/agents-policy.mjs +331 -0
- package/.pi/lib/agents-policy.ts +19 -0
- package/.pi/lib/agt/audit-run-sink.ts +52 -0
- package/.pi/lib/agt/build-evaluation-context.ts +285 -0
- package/.pi/lib/agt/config.ts +28 -0
- package/.pi/lib/agt/delegation.ts +69 -0
- package/.pi/lib/agt/evaluate-policy.ts +56 -0
- package/.pi/lib/agt/identity-registry.ts +41 -0
- package/.pi/lib/agt/index.ts +55 -0
- package/.pi/lib/agt/kill-switch-state.ts +11 -0
- package/.pi/lib/agt/legacy-evaluate.ts +101 -0
- package/.pi/lib/agt/policy-engine.ts +154 -0
- package/.pi/lib/agt/rings.ts +21 -0
- package/.pi/lib/agt/sre-hooks.ts +45 -0
- package/.pi/lib/agt/trust-run-store.ts +26 -0
- package/.pi/lib/agt/workflow-history.ts +29 -0
- package/.pi/lib/agt-governance-active.ts +14 -0
- package/.pi/lib/agt-tool-guard.ts +78 -0
- package/.pi/lib/ask-user/dialog.ts +314 -0
- package/.pi/{extensions/lib → lib}/debate-bus-core.ts +10 -10
- package/.pi/{extensions/lib → lib}/debate-bus-state.ts +1 -1
- package/.pi/{extensions/lib → lib}/extension-load-guard.ts +13 -2
- package/.pi/lib/harness-agt-tool-guard.ts +5 -0
- package/.pi/{extensions/lib → lib}/harness-artifact-gate.ts +1 -1
- package/.pi/lib/harness-debate-core-deps.ts +14 -0
- package/.pi/lib/harness-debate-workflow-deps.ts +43 -0
- package/.pi/lib/harness-lens/.gitattributes +1 -0
- package/.pi/lib/harness-lens/clients/edit-autopatch.ts +88 -0
- package/.pi/lib/harness-lens/clients/file-kinds.ts +380 -0
- package/.pi/lib/harness-lens/clients/file-time.ts +215 -0
- package/.pi/lib/harness-lens/clients/file-utils.ts +484 -0
- package/.pi/lib/harness-lens/clients/format-service.ts +276 -0
- package/.pi/lib/harness-lens/clients/formatters.ts +1000 -0
- package/.pi/lib/harness-lens/clients/git-guard.ts +31 -0
- package/.pi/lib/harness-lens/clients/indent-retarget.ts +90 -0
- package/.pi/lib/harness-lens/clients/installer/index.ts +2368 -0
- package/.pi/lib/harness-lens/clients/latency-logger.ts +80 -0
- package/.pi/lib/harness-lens/clients/lens-config.ts +43 -0
- package/.pi/lib/harness-lens/clients/lens-events.ts +164 -0
- package/.pi/lib/harness-lens/clients/lsp/aggregation.ts +91 -0
- package/.pi/lib/harness-lens/clients/lsp/client.ts +1466 -0
- package/.pi/lib/harness-lens/clients/lsp/config.ts +216 -0
- package/.pi/lib/harness-lens/clients/lsp/edits.ts +297 -0
- package/.pi/lib/harness-lens/clients/lsp/index.ts +1355 -0
- package/.pi/lib/harness-lens/clients/lsp/interactive-install.ts +424 -0
- package/.pi/lib/harness-lens/clients/lsp/language.ts +223 -0
- package/.pi/lib/harness-lens/clients/lsp/launch.ts +939 -0
- package/.pi/lib/harness-lens/clients/lsp/lsp-index.ts +11 -0
- package/.pi/lib/harness-lens/clients/lsp/path-utils.ts +12 -0
- package/.pi/lib/harness-lens/clients/lsp/server-strategies.ts +81 -0
- package/.pi/lib/harness-lens/clients/lsp/server.ts +1971 -0
- package/.pi/lib/harness-lens/clients/path-utils.ts +182 -0
- package/.pi/lib/harness-lens/clients/pipeline.ts +360 -0
- package/.pi/lib/harness-lens/clients/project-profile.ts +117 -0
- package/.pi/lib/harness-lens/clients/runtime-agent-end.ts +112 -0
- package/.pi/lib/harness-lens/clients/runtime-config.ts +33 -0
- package/.pi/lib/harness-lens/clients/runtime-coordinator.ts +186 -0
- package/.pi/lib/harness-lens/clients/runtime-tool-result.ts +171 -0
- package/.pi/lib/harness-lens/clients/safe-spawn.ts +339 -0
- package/.pi/lib/harness-lens/clients/secrets-scanner.ts +214 -0
- package/.pi/lib/harness-lens/clients/tool-policy.ts +2072 -0
- package/.pi/lib/harness-lens/clients/types.ts +59 -0
- package/.pi/lib/harness-lens/clients/widget-state.ts +283 -0
- package/.pi/lib/harness-lens/index.ts +532 -0
- package/.pi/lib/harness-lens/tools/lsp-diagnostics.ts +706 -0
- package/.pi/lib/harness-lens/tools/lsp-navigation.ts +1246 -0
- package/.pi/{extensions/lib → lib}/harness-posthog.ts +3 -0
- package/.pi/lib/harness-run-context-responses.ts +9 -0
- package/.pi/lib/harness-run-context.ts +0 -2
- package/.pi/{extensions/lib/spawn-policy.ts → lib/harness-spawn-policy.ts} +1 -0
- package/.pi/{extensions/lib → lib}/harness-spawn-topology.ts +1 -1
- package/.pi/lib/harness-subagent-auth.ts +81 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-precheck.ts +10 -7
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-pipeline.ts +3 -3
- package/.pi/lib/harness-subagent-submit-register.ts +163 -0
- package/.pi/{extensions/lib → lib}/harness-subagent-submit-registry.ts +1 -37
- package/.pi/{extensions/lib → lib}/harness-subagents-bridge.ts +74 -14
- package/.pi/{extensions/lib → lib}/harness-subprocess-bootstrap.ts +1 -1
- package/.pi/lib/harness-web/artifacts.ts +200 -0
- package/.pi/lib/harness-web/cache.ts +369 -0
- package/.pi/{extensions/lib → lib}/harness-web/run-cli.ts +42 -2
- package/.pi/{extensions/lib → lib}/plan-approval/create-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/format-plan.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/plan-review.ts +162 -201
- package/.pi/{extensions/lib → lib}/plan-approval/render.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/resolve-disk.ts +2 -2
- package/.pi/{extensions/lib → lib}/plan-approval/types.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-approval/validate.ts +3 -3
- package/.pi/{extensions/lib → lib}/plan-debate-envelope.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-gate.ts +1 -1
- package/.pi/{extensions/lib → lib}/plan-debate-lane.ts +1 -4
- package/.pi/{extensions/lib → lib}/plan-messenger.ts +1 -1
- package/.pi/prompts/harness-plan.md +2 -1
- package/.pi/prompts/harness-setup.md +40 -65
- package/.pi/scripts/README.md +2 -5
- package/.pi/scripts/gen-web-heuristic-angles-json.mjs +24 -0
- package/.pi/scripts/generate-agents-policy-yaml.mjs +148 -0
- package/.pi/scripts/harness-agents-manifest.mjs +60 -3
- package/.pi/scripts/harness-agt-doctor.ts +36 -0
- package/.pi/scripts/harness-cli-verify.sh +14 -2
- package/.pi/scripts/harness-verify.mjs +191 -39
- package/.pi/scripts/harness-web-policy-guard.mjs +3 -3
- package/.pi/scripts/harness-web.py +218 -15
- package/.pi/scripts/harness_web/deep_search.py +55 -0
- package/.pi/scripts/harness_web/evidence_bundle.py +47 -0
- package/.pi/scripts/harness_web/find_similar.py +88 -0
- package/.pi/scripts/harness_web/heuristic_angles_shipped.py +85 -0
- package/.pi/scripts/harness_web/heuristic_config.py +251 -0
- package/.pi/scripts/harness_web/highlights.py +47 -0
- package/.pi/scripts/harness_web/multi_search.py +59 -0
- package/.pi/scripts/harness_web/output.py +24 -0
- package/.pi/scripts/harness_web/query_angles.py +116 -0
- package/.pi/scripts/harness_web/rank.py +163 -0
- package/.pi/scripts/harness_web/scrape.py +30 -0
- package/.pi/scripts/tests/test_harness_web_heuristic_config.py +132 -0
- package/.pi/scripts/tests/test_harness_web_query_angles.py +45 -0
- package/.pi/scripts/tests/test_harness_web_rank.py +56 -0
- package/.pi/scripts/validate-plan-dag.mjs +65 -74
- package/.pi/scripts/vendor-pi-vcc-settings.stub.ts +2 -2
- package/.pi/scripts/vendor-sync-pi-vcc.sh +1 -1
- package/.pi/skills/architecture/broker-domain/SKILL.md +65 -0
- package/.pi/skills/architecture/cqrs/SKILL.md +63 -0
- package/.pi/skills/architecture/event-driven/SKILL.md +60 -0
- package/.pi/skills/architecture/hexagonal-ports-adapters/SKILL.md +66 -0
- package/.pi/skills/architecture/layered/SKILL.md +68 -0
- package/.pi/skills/architecture/microkernel/SKILL.md +62 -0
- package/.pi/skills/architecture/microservices/SKILL.md +64 -0
- package/.pi/skills/architecture/modular-monolith/SKILL.md +65 -0
- package/.pi/skills/architecture/orchestration-driven-soa/SKILL.md +61 -0
- package/.pi/skills/architecture/pipeline/SKILL.md +63 -0
- package/.pi/skills/architecture/service-based/SKILL.md +64 -0
- package/.pi/skills/architecture/service-mesh/SKILL.md +60 -0
- package/.pi/skills/architecture/space-based/SKILL.md +60 -0
- package/.pi/skills/ast-grep/SKILL.md +40 -321
- package/.pi/skills/delivery/debugging-discipline/SKILL.md +36 -0
- package/.pi/skills/delivery/documentation-update/SKILL.md +33 -0
- package/.pi/skills/delivery/requirements-to-implementation/SKILL.md +34 -0
- package/.pi/skills/delivery/risk-based-verification/SKILL.md +43 -0
- package/.pi/skills/delivery/tradeoff-analysis/SKILL.md +34 -0
- package/.pi/skills/engineering/api-contract-design/SKILL.md +38 -0
- package/.pi/skills/engineering/cohesion-coupling/SKILL.md +43 -0
- package/.pi/skills/engineering/complexity-control/SKILL.md +31 -0
- package/.pi/skills/engineering/defensive-programming/SKILL.md +38 -0
- package/.pi/skills/engineering/dependency-management/SKILL.md +29 -0
- package/.pi/skills/engineering/domain-modeling/SKILL.md +32 -0
- package/.pi/skills/engineering/error-handling/SKILL.md +37 -0
- package/.pi/skills/engineering/legacy-code-seams/SKILL.md +35 -0
- package/.pi/skills/engineering/naming-and-intent/SKILL.md +29 -0
- package/.pi/skills/engineering/refactoring-safe-evolution/SKILL.md +35 -0
- package/.pi/skills/engineering/routine-function-design/SKILL.md +34 -0
- package/.pi/skills/engineering/small-change-discipline/SKILL.md +35 -0
- package/.pi/skills/lsp-navigation/SKILL.md +89 -0
- package/.pi/skills/quality/code-review-self-check/SKILL.md +35 -0
- package/.pi/skills/quality/privacy-data-handling/SKILL.md +26 -0
- package/.pi/skills/quality/security-review/SKILL.md +34 -0
- package/.pi/skills/quality/test-strategy/SKILL.md +33 -0
- package/.pi/skills/quality/testability-design/SKILL.md +33 -0
- package/.pi/skills/systems/concurrency-safety/SKILL.md +32 -0
- package/.pi/skills/systems/data-modeling-migrations/SKILL.md +31 -0
- package/.pi/skills/systems/observability-instrumentation/SKILL.md +32 -0
- package/.pi/skills/systems/performance-measurement/SKILL.md +35 -0
- package/.pi/skills/systems/reliability-design/SKILL.md +32 -0
- package/.sentrux/rules.toml +20 -4
- package/AGENTS.md +7 -2
- package/CHANGELOG.md +20 -0
- package/README.md +3 -12
- package/THIRD_PARTY_NOTICES.md +12 -21
- package/package.json +17 -7
- package/vendor/pi-subagents/src/agents.ts +45 -1
- package/vendor/pi-subagents/src/subagents.ts +866 -811
- package/vendor/pi-vcc/src/core/brief.ts +68 -99
- package/vendor/pi-vcc/src/core/settings.ts +2 -2
- package/.agents/skills/caveman/SKILL.md +0 -67
- package/.agents/skills/scrapling-web/SKILL.md +0 -98
- package/.pi/agents/harness/meta-optimizer.md +0 -36
- package/.pi/extensions/00-posthog-network-bootstrap.ts +0 -11
- package/.pi/extensions/lib/ask-user/dialog.ts +0 -260
- package/.pi/extensions/lib/harness-subagent-auth.ts +0 -207
- package/.pi/extensions/lib/harness-subagent-policy.ts +0 -236
- package/.pi/extensions/pi-model-router-harness.ts +0 -42
- package/.pi/harness/evolution/meta-optimizer.mjs +0 -99
- package/.pi/harness/specs/router-tuning-proposal.schema.json +0 -114
- package/.pi/model-router.example.json +0 -36
- package/.pi/prompts/harness-critic.md +0 -10
- package/.pi/prompts/harness-eval.md +0 -10
- package/.pi/prompts/harness-router-tune.md +0 -52
- package/.pi/scripts/harness-generate-model-router.mjs +0 -327
- package/.pi/scripts/harness-model-router-routing.test.mjs +0 -97
- package/.pi/scripts/harness-sync-model-router.mjs +0 -97
- package/.pi/scripts/harness_web/__pycache__/__init__.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/config.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/output.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/scrape.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search_ddg.cpython-314.pyc +0 -0
- package/.pi/scripts/harness_web/__pycache__/search_searxng.cpython-314.pyc +0 -0
- package/.pi/scripts/vendor-sync-pi-model-router.sh +0 -47
- package/vendor/pi-model-router/.prettierignore +0 -4
- package/vendor/pi-model-router/.prettierrc +0 -5
- package/vendor/pi-model-router/AGENTS.md +0 -39
- package/vendor/pi-model-router/LICENSE +0 -21
- package/vendor/pi-model-router/README.md +0 -99
- package/vendor/pi-model-router/UPSTREAM_PIN.md +0 -10
- package/vendor/pi-model-router/docs/ARCHITECTURE.md +0 -54
- package/vendor/pi-model-router/extensions/commands.ts +0 -720
- package/vendor/pi-model-router/extensions/config.ts +0 -348
- package/vendor/pi-model-router/extensions/constants.ts +0 -1
- package/vendor/pi-model-router/extensions/index.ts +0 -478
- package/vendor/pi-model-router/extensions/provider.ts +0 -580
- package/vendor/pi-model-router/extensions/routing.ts +0 -564
- package/vendor/pi-model-router/extensions/state.ts +0 -52
- package/vendor/pi-model-router/extensions/types.ts +0 -95
- package/vendor/pi-model-router/extensions/ui.ts +0 -144
- package/vendor/pi-model-router/model-router.example.json +0 -48
- package/vendor/pi-model-router/package.json +0 -48
- package/vendor/pi-model-router/tsconfig.json +0 -16
- /package/.pi/{prompts → harness/docs}/planning-rubrics.md +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/fallback.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/render.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/types.ts +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate-core.mjs +0 -0
- /package/.pi/{extensions/lib → lib}/ask-user/validate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-cocoindex-refresh.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-paths.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-spawn-budget.ts +0 -0
- /package/.pi/{extensions/lib → lib}/harness-vcc-settings.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/dialog.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval/schema.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-approval-readiness.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-eligibility.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-focus.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-id.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-lanes.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-round-status.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-debate-write-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-gate.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-review-integrator-rules.ts +0 -0
- /package/.pi/{extensions/lib → lib}/plan-scope-guard.ts +0 -0
- /package/.pi/{extensions/lib → lib}/posthog-client.ts +0 -0
- /package/.pi/{extensions/lib → lib}/posthog-node.d.ts +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: modular-monolith
|
|
3
|
+
description: "Use when designing, splitting, or repairing a modular monolith: one deployable application with explicit business modules, bounded contexts, private internals, stable module APIs, and database boundaries that can later support service extraction."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Modular Monolith
|
|
7
|
+
|
|
8
|
+
Use this skill when an agent should preserve monolith simplicity while creating real architectural boundaries.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use when one deployable is acceptable but the codebase needs independent business modules, lower coupling, and clearer ownership.
|
|
13
|
+
Avoid premature microservices when deployment independence, team autonomy, and operational maturity are not proven.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "modular monolith bounded context module boundaries coupling"`.
|
|
19
|
+
3. Identify business capabilities and their current code communities.
|
|
20
|
+
4. Pick one module boundary to harden.
|
|
21
|
+
5. Introduce module APIs before moving persistence or transport code.
|
|
22
|
+
6. Verify no private internals leak across modules.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
codebase/modules/
|
|
28
|
+
billing/
|
|
29
|
+
public-api # exported commands/events/types only
|
|
30
|
+
application/
|
|
31
|
+
domain/
|
|
32
|
+
infrastructure/
|
|
33
|
+
internal/ # never imported by other modules
|
|
34
|
+
identity/
|
|
35
|
+
public-api
|
|
36
|
+
...
|
|
37
|
+
codebase/shared-kernel/ # tiny, stable cross-module primitives only
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Implementation Rules
|
|
41
|
+
|
|
42
|
+
- Modules communicate through an explicit public API/facade, application commands, domain events, or explicit query APIs.
|
|
43
|
+
- No module imports another module's `internal/`, `domain/`, or infrastructure files.
|
|
44
|
+
- Keep one process and one deployment until extraction pressure is real.
|
|
45
|
+
- Prefer per-module schemas/tables or clear ownership comments for shared DBs.
|
|
46
|
+
- Shared kernel must be small; duplicated domain language is often better than false sharing.
|
|
47
|
+
|
|
48
|
+
## Migration Steps
|
|
49
|
+
|
|
50
|
+
1. Name the bounded context using domain vocabulary.
|
|
51
|
+
2. Create the module directory and public API/facade.
|
|
52
|
+
3. Move one cohesive use case behind the facade.
|
|
53
|
+
4. Replace external imports with facade calls.
|
|
54
|
+
5. Add a dependency-boundary rule.
|
|
55
|
+
6. Document the module's owned data and events.
|
|
56
|
+
|
|
57
|
+
## Verification
|
|
58
|
+
|
|
59
|
+
- `graphify explain "<module name>"` should show few cross-module private edges.
|
|
60
|
+
- Use structural search for imports from `modules/*/internal`, `domain`, or `infrastructure` across module boundaries.
|
|
61
|
+
- Add tests at module API boundaries, not only end-to-end tests.
|
|
62
|
+
|
|
63
|
+
## Output Contract
|
|
64
|
+
|
|
65
|
+
Return: proposed modules, public APIs, forbidden imports, migration patch, fitness check, and extraction readiness notes.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orchestration-driven-soa
|
|
3
|
+
description: "Use when implementing orchestration-driven service-oriented architecture: central workflow orchestration across services, explicit process models, compensations, service contracts, long-running transactions, and governance boundaries."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Orchestration-Driven SOA
|
|
7
|
+
|
|
8
|
+
Use this skill when a central process coordinator is the clearest way to manage cross-service workflows.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use for long-running business processes, compliance-heavy flows, and integrations where visibility and control matter more than local autonomy.
|
|
13
|
+
Avoid when simple choreography is sufficient or a central orchestrator would become a god service.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "orchestration driven service oriented architecture workflow compensation"`.
|
|
19
|
+
3. Identify the end-to-end business process and participating services.
|
|
20
|
+
4. Model the workflow states before code.
|
|
21
|
+
5. Implement the orchestrator as a thin state machine, not a business blob.
|
|
22
|
+
6. Add compensation and timeout behavior.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
codebase/workflows/
|
|
28
|
+
<workflow>/
|
|
29
|
+
states
|
|
30
|
+
orchestrator
|
|
31
|
+
participants
|
|
32
|
+
compensations
|
|
33
|
+
tests/
|
|
34
|
+
codebase/services/*/contract
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Implementation Rules
|
|
38
|
+
|
|
39
|
+
- Orchestrator owns process state, sequencing, timeouts, and compensation.
|
|
40
|
+
- Domain services own local business invariants and data.
|
|
41
|
+
- Participant contracts are explicit and versioned.
|
|
42
|
+
- Every remote step has timeout, retry, and compensation semantics.
|
|
43
|
+
- Avoid embedding service internals in the orchestrator.
|
|
44
|
+
|
|
45
|
+
## Migration Steps
|
|
46
|
+
|
|
47
|
+
1. Draw the workflow as states and transitions.
|
|
48
|
+
2. Define participant ports/contracts.
|
|
49
|
+
3. Implement a state store for workflow instances.
|
|
50
|
+
4. Move cross-service sequencing into the orchestrator.
|
|
51
|
+
5. Add compensating actions for partial failure.
|
|
52
|
+
6. Add trace IDs across all participant calls.
|
|
53
|
+
|
|
54
|
+
## Verification
|
|
55
|
+
|
|
56
|
+
- `graphify explain "orchestrator"` should show workflow-to-contract dependencies, not service internals.
|
|
57
|
+
- Test happy path, participant failure, retry exhaustion, timeout, compensation failure, and resume after crash.
|
|
58
|
+
|
|
59
|
+
## Output Contract
|
|
60
|
+
|
|
61
|
+
Return: workflow state model, participant contracts, orchestrator patch, compensation matrix, and verification evidence.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pipeline
|
|
3
|
+
description: "Use when implementing pipeline architecture: data or task processing split into ordered filters/stages with explicit inputs, outputs, composition, error handling, and observability across the flow."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Pipeline Architecture
|
|
7
|
+
|
|
8
|
+
Use this skill to transform tangled sequential processing into composable stages.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use for compilers, ETL, media/document processing, validation chains, enrichment, agent workflows, and deterministic multi-step transformations.
|
|
13
|
+
Avoid when stages require heavy bidirectional coordination or shared mutable state.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "pipeline stages filters processing flow"`.
|
|
19
|
+
3. Identify the current implicit sequence and data passed between steps.
|
|
20
|
+
4. Define a typed stage contract.
|
|
21
|
+
5. Extract one stage at a time.
|
|
22
|
+
6. Add tests per stage and for the assembled pipeline.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
codebase/pipeline/
|
|
28
|
+
stage-contract # Stage<Input, Output>, context, errors
|
|
29
|
+
stages/
|
|
30
|
+
parse
|
|
31
|
+
validate
|
|
32
|
+
enrich
|
|
33
|
+
persist
|
|
34
|
+
compose # ordering and short-circuit rules
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Implementation Rules
|
|
38
|
+
|
|
39
|
+
- Each stage has one responsibility and explicit input/output.
|
|
40
|
+
- Stages do not reach backward into previous stages' internals.
|
|
41
|
+
- Shared context is read-mostly; stage outputs carry facts forward.
|
|
42
|
+
- Treat retries, dead letters, partial failures, and idempotency as first-class.
|
|
43
|
+
- Put composition outside stages so ordering is visible.
|
|
44
|
+
|
|
45
|
+
## Migration Steps
|
|
46
|
+
|
|
47
|
+
1. Write the stage interface.
|
|
48
|
+
2. Wrap the existing process as one stage-preserving facade.
|
|
49
|
+
3. Extract the first pure transformation.
|
|
50
|
+
4. Add fixture tests for that stage.
|
|
51
|
+
5. Extract side-effecting stages behind ports/adapters.
|
|
52
|
+
6. Make observability emit stage name, duration, input id, and failure class.
|
|
53
|
+
|
|
54
|
+
## Verification
|
|
55
|
+
|
|
56
|
+
- Use `graphify explain "compose"` or the pipeline entrypoint to inspect stage dependencies.
|
|
57
|
+
- Test stages independently with fixtures.
|
|
58
|
+
- Test full ordering with one integration test.
|
|
59
|
+
- Confirm stages do not directly depend on each other except through composition.
|
|
60
|
+
|
|
61
|
+
## Output Contract
|
|
62
|
+
|
|
63
|
+
Return: stage map, stage contracts, extracted stage patch, failure semantics, and verification evidence.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: service-based
|
|
3
|
+
description: "Use when implementing service-based architecture: coarse-grained domain services inside a mostly centralized system, with explicit service contracts, transaction boundaries, shared infrastructure discipline, and fewer operational costs than microservices."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Service-Based Architecture
|
|
7
|
+
|
|
8
|
+
Use this skill to carve coarse domain services without forcing full microservice overhead.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use when modules need clearer runtime/service boundaries but can share deployment, database infrastructure, or platform operations.
|
|
13
|
+
Avoid when independent deployability and data ownership per service are already mandatory.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "service-based architecture coarse services database boundaries transactions"`.
|
|
19
|
+
3. Identify coarse business services and shared resources.
|
|
20
|
+
4. Define service contracts and transaction ownership.
|
|
21
|
+
5. Extract one service facade and move callers behind it.
|
|
22
|
+
6. Add contract and dependency checks.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
codebase/services/
|
|
28
|
+
customer/
|
|
29
|
+
contract
|
|
30
|
+
service
|
|
31
|
+
data-access
|
|
32
|
+
order/
|
|
33
|
+
contract
|
|
34
|
+
service
|
|
35
|
+
data-access
|
|
36
|
+
codebase/platform/ # shared runtime, config, logging, persistence connection
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Implementation Rules
|
|
40
|
+
|
|
41
|
+
- Services are coarse-grained and domain-aligned, not one service per entity.
|
|
42
|
+
- Services expose contracts; callers do not reach into service internals.
|
|
43
|
+
- Transaction boundaries are explicit and usually owned by the called service.
|
|
44
|
+
- Shared DB is allowed, but table ownership and cross-service writes must be documented.
|
|
45
|
+
- Avoid distributed systems ceremony unless deployment separation is real.
|
|
46
|
+
|
|
47
|
+
## Migration Steps
|
|
48
|
+
|
|
49
|
+
1. Pick one domain service with many scattered callers.
|
|
50
|
+
2. Create the service contract and service facade.
|
|
51
|
+
3. Move behavior behind the facade.
|
|
52
|
+
4. Replace direct data writes from other areas with service calls.
|
|
53
|
+
5. Document data ownership.
|
|
54
|
+
6. Add tests for service contract and transaction behavior.
|
|
55
|
+
|
|
56
|
+
## Verification
|
|
57
|
+
|
|
58
|
+
- Use `graphify explain "<service name>"` to inspect inbound/outbound coupling.
|
|
59
|
+
- Search for cross-service imports into internal files.
|
|
60
|
+
- Test that callers use contracts and cannot mutate owned data directly.
|
|
61
|
+
|
|
62
|
+
## Output Contract
|
|
63
|
+
|
|
64
|
+
Return: service boundaries, contracts, transaction rules, migrated callers, verification, and microservice-readiness caveats.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: service-mesh
|
|
3
|
+
description: "Use when applying the service mesh pattern to service architectures: move cross-cutting network concerns such as retries, mTLS, routing, observability, policy, and traffic shaping out of service code while preserving domain ownership."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Service Mesh Pattern
|
|
7
|
+
|
|
8
|
+
Use this skill when cross-service networking concerns are polluting service code or need centralized policy.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use with multiple networked services that need consistent traffic policy, mTLS, observability, retries, or progressive delivery.
|
|
13
|
+
Avoid for small systems where a mesh would add platform complexity without clear benefit.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "service mesh pattern microservices network policy observability"`.
|
|
19
|
+
3. Identify cross-cutting network behavior embedded in services.
|
|
20
|
+
4. Decide what belongs in mesh/platform versus application code.
|
|
21
|
+
5. Remove one cross-cutting concern from service code safely.
|
|
22
|
+
6. Add tests/config checks for equivalent behavior.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
services/<service>/code/ # domain/application code without mesh vendor logic
|
|
28
|
+
platform/mesh/
|
|
29
|
+
policies/
|
|
30
|
+
routes/
|
|
31
|
+
telemetry/
|
|
32
|
+
security/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Implementation Rules
|
|
36
|
+
|
|
37
|
+
- Service code owns business behavior, data, and explicit dependency calls.
|
|
38
|
+
- Mesh/platform owns mTLS, traffic routing, retries where safe, timeouts, telemetry, and policy.
|
|
39
|
+
- Do not hide business retries or non-idempotent compensation in mesh config.
|
|
40
|
+
- Timeout and retry budgets must align with application semantics.
|
|
41
|
+
- Mesh config is versioned, reviewed, and tested like code.
|
|
42
|
+
|
|
43
|
+
## Migration Steps
|
|
44
|
+
|
|
45
|
+
1. Inventory duplicated network concerns in services.
|
|
46
|
+
2. Pick one safe concern such as telemetry headers or mTLS policy.
|
|
47
|
+
3. Add mesh/platform config with rollout guardrails.
|
|
48
|
+
4. Remove redundant service code.
|
|
49
|
+
5. Validate runtime behavior in tests or staging.
|
|
50
|
+
6. Document ownership and rollback.
|
|
51
|
+
|
|
52
|
+
## Verification
|
|
53
|
+
|
|
54
|
+
- Use graphify to confirm service modules no longer depend on platform/mesh internals.
|
|
55
|
+
- Test timeout/retry behavior for idempotent and non-idempotent calls.
|
|
56
|
+
- Validate telemetry, route, and security policies with existing platform checks.
|
|
57
|
+
|
|
58
|
+
## Output Contract
|
|
59
|
+
|
|
60
|
+
Return: concern inventory, mesh/app ownership split, config/code patch, rollout plan, verification, and operational risks.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: space-based
|
|
3
|
+
description: "Use when implementing space-based architecture: horizontally scalable processing units, in-memory/distributed state, partitioning, eventual persistence, backpressure, replication, and operational safeguards for high-volume systems."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Space-Based Architecture
|
|
7
|
+
|
|
8
|
+
Use this skill for systems where database bottlenecks and burst traffic dominate the design.
|
|
9
|
+
|
|
10
|
+
## Fit
|
|
11
|
+
|
|
12
|
+
Use for high-volume, bursty, low-latency workloads needing horizontal scaling and elastic processing.
|
|
13
|
+
Avoid for ordinary CRUD systems; this pattern adds serious operational complexity.
|
|
14
|
+
|
|
15
|
+
## Agent Workflow
|
|
16
|
+
|
|
17
|
+
1. Read `graphify-out/GRAPH_REPORT.md`.
|
|
18
|
+
2. Run `graphify query "space-based architecture processing units partitioning replication"`.
|
|
19
|
+
3. Identify the scalability bottleneck and partition key.
|
|
20
|
+
4. Isolate processing unit logic from persistence.
|
|
21
|
+
5. Make state ownership, replication, and recovery explicit.
|
|
22
|
+
6. Add load, failover, and backpressure checks.
|
|
23
|
+
|
|
24
|
+
## Target Shape
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
codebase/space/
|
|
28
|
+
processing-unit/ # stateless-ish compute plus owned partition state
|
|
29
|
+
partitioning # keying and routing
|
|
30
|
+
state-store # distributed/in-memory state port
|
|
31
|
+
persistence-sync # async persistence/replication
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Implementation Rules
|
|
35
|
+
|
|
36
|
+
- Choose a stable partition key before code changes.
|
|
37
|
+
- Processing units own only their partition's hot state.
|
|
38
|
+
- Persistence is asynchronous where possible; consistency must be stated.
|
|
39
|
+
- Backpressure, retries, and overload behavior are part of the architecture.
|
|
40
|
+
- Recovery must rebuild state from durable sources or snapshots.
|
|
41
|
+
- Do not introduce distributed cache/state without observability.
|
|
42
|
+
|
|
43
|
+
## Migration Steps
|
|
44
|
+
|
|
45
|
+
1. Measure or identify the bottleneck.
|
|
46
|
+
2. Extract hot-path processing into a processing-unit boundary.
|
|
47
|
+
3. Add a state-store port with one implementation.
|
|
48
|
+
4. Route requests/events by partition key.
|
|
49
|
+
5. Add async persistence or snapshot/replay.
|
|
50
|
+
6. Add load and failover tests around the boundary.
|
|
51
|
+
|
|
52
|
+
## Verification
|
|
53
|
+
|
|
54
|
+
- Use graphify to confirm hot path does not synchronously depend on the old bottleneck.
|
|
55
|
+
- Test partition routing, duplicate processing, restart recovery, and overloaded dependencies.
|
|
56
|
+
- Record latency/throughput assumptions in an ADR.
|
|
57
|
+
|
|
58
|
+
## Output Contract
|
|
59
|
+
|
|
60
|
+
Return: bottleneck, partition key, processing-unit patch, state/recovery model, verification, and operational risks.
|