@ccoalm/ccl-skills 0.1.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/LICENSE +201 -0
- package/README.md +49 -0
- package/dist/assets/marketplace/.agents/plugins/marketplace.json +12 -0
- package/dist/assets/marketplace/.claude-plugin/marketplace.json +13 -0
- package/dist/assets/marketplace/marketplace-manifest.json +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/marketplace.json +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.claude-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.codex-plugin/plugin.json +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/.worktree-only +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/session-start.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/agent-context/subagent-start.md +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/AGENTS.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-delegation-owner.sh +125 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-edit-isolation.sh +102 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/guard-merge-authorization.sh +1156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/hooks.json +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/merge-authorization-prompt.sh +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-guard.sh +12 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/owner-dispatch-stop.sh +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/remind-post-merge-cleanup.sh +144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-context.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/session-start.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/skill-extraction-gate-stop.sh +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/subagent-start.sh +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_delegation_owner.sh +329 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_edit_isolation.sh +322 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_guard_merge_authorization.sh +902 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_merge_authorization_prompt.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_remind_post_merge_cleanup.sh +121 -0
- package/dist/assets/marketplace/plugins/ccl-skills/hooks/test_session_start.sh +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/ccl-skills.ts +564 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-install-skills.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-update-skills.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-verify-skills.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/packages/opencode-plugin/commands/ccl-worktree-check.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/AGENTS.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/README.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.example.json +10 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/owner-dispatch.sh +1307 -0
- package/dist/assets/marketplace/plugins/ccl-skills/scripts/owner-dispatch/test.sh +941 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/SKILL.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/agents-file-coverage-gate/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/SKILL.md +188 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/android-dev.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/flutter-dev.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/ios-dev.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/kotlin-multiplatform.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-platform-boundaries.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/mobile-quality-release.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/app-cross-platform-dev/references/source-evidence-map.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/SKILL.md +353 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/client-routing.md +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/manual-invocation-and-prompts.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/staged-review-contract.md +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/references/timeout-auth-and-capabilities.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/AGENTS.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_envelope.py +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/classify_timeout_exit.sh +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/claude_review.sh +1438 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/codex_review.sh +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/concern_excerpt.py +295 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/egress_schema.py +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/init_policy_matrix.py +642 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_packet_mcp.py +181 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/kimi_review.sh +1165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/opencode_review.sh +1190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_cli_review.py +946 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_opencode_review.py +474 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_probe_result.py +1899 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/parse_review_json.py +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.py +2845 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/review_gate.sh +6 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/run_claude_capture.py +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/runtime-surface-verification-design.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_classify_envelope.sh +68 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_claude_review_probe.sh +2311 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_cli_review_wrappers.sh +1832 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_code_review_identity.sh +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_concern_excerpt.sh +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_egress_schema.sh +177 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_init_policy_matrix.sh +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_kimi_packet_mcp.py +195 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_concurrency.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_opencode_review_retry.sh +1005 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_opencode_review.sh +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_probe_result.sh +574 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_parse_review_json.sh +349 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_compat.py +434 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_client_order.sh +264 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/test_review_gate.sh +2412 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/code-review/scripts/verify_native_skill_binding.py +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/SKILL.md +153 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/diagnosis-playbook.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/defect-diagnosis/references/prevention-routing.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/SKILL.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/feature-risk-router/references/security-review-gate.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/SKILL.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/api-security-boundaries.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/architecture-playbook.md +160 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/artifact-generation-architecture.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/audit-history-architecture.md +29 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/bulk-workflow-architecture.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/config-rule-routing-architecture.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/cross-cutting-concerns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-modeling-and-migrations.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/data-platform-architecture.md +210 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/dependency-platform.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/developer-tooling-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/error-contract-architecture.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/event-driven-architecture.md +260 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/http-gateway-architecture.md +74 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/mq-consumer-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/multi-tenant-isolation.md +275 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/notification-architecture.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/ops-checklist.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/performance-capacity-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/protobuf-contract-architecture.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/redis-cache-coordination.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/release-runtime-readiness.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/replay-comparison-architecture.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/runtime-observability.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/service-scaffold.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-architecture/references/workflow-state-architecture.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/SKILL.md +159 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/artifact-generation-patterns.md +37 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/audit-history-patterns.md +28 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/bulk-import-export-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/config-rule-routing-patterns.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/data-access-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/db-schema-and-dal-patterns.md +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/dependency-client-patterns.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/developer-tooling-patterns.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/domain-feature-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/engineering-patterns.md +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/error-contract-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/feature-playbook.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/http-gateway-client-patterns.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/mq-consumer-patterns.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/notification-patterns.md +42 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/observability-implementation-patterns.md +101 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/performance-capacity-patterns.md +44 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/protobuf-contract-patterns.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/public-api-integration-patterns.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/quality-and-testing-patterns.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/redis-cache-lock-patterns.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/release-ops-patterns.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/reliability-patterns.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/replay-comparison-patterns.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/scaffold-and-codegen.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/source-evidence-map.md +54 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/go-microservice-dev/references/state-machine-task-patterns.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/SKILL.md +80 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/grill-me/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/SKILL.md +117 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-approval-auto-reviewer.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-command-sandbox.md +441 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-context-freshness.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-credentials-auth.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-extensions-skills.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-file-edit-protocol.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-ide-integration.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-input-ingestion.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-instruction-composition.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-lifecycle-hooks.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-messaging.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-runtime-bootstrap.md +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-session-persistence.md +448 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-task-orchestration.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-tool-dispatch.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/agent-turn-lifecycle.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/inference-capacity-operations.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/llm-client-gateway.md +156 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/model-prompt-evaluation.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/llm-inference-integration/references/retrieval-agent-safety.md +273 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/SKILL.md +202 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/contracts-and-state.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/cross-stack-alignment.md +94 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/framework-choice.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/online-practice-uptake.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/platform-capabilities.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/product-page-checklist.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/qa-release.md +72 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/miniapp-product-dev/references/source-evidence-map.md +82 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/SKILL.md +103 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/agents/openai.yaml +5 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-agent-delegation/references/multi-agent-delegation-playbook.md +100 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/SKILL.md +70 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-data-acquisition.md +549 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/public-disclosure-channels.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/references/research-prompts.md +66 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/AGENTS.md +32 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/multi-perspective-research/scripts/test-public-data-acquisition-recipes.sh +379 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/SKILL.md +244 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/alerting-and-on-call.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/framework-middleware-checklist.md +142 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/infra-component-deployment.md +268 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-correlation-recipe.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/log-schema-canonical.md +208 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/metrics-conventions.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/obs-stack-architecture.md +107 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/sli-slo-design.md +95 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-observability/references/source-register.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/SKILL.md +303 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/canary-and-rollout-strategy.md +163 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/config-center-via-etcd.md +245 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/custom-control-plane-boundary.md +298 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-cli-concrete-recipe.md +312 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/deploy-pipeline.md +165 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/env-and-lane-matrix.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/lane-orchestration-control-plane.md +383 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/multi-region-and-cluster.md +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/promotion-gate-and-review.md +149 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/python-package-registry-release.md +462 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/rollback-playbook.md +123 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/secret-and-config-management.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-release-engineering/references/version-authority-and-deprecation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/SKILL.md +276 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/dual-sidecar-and-traffic-config-center.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/framework-middleware.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/grpc-authority-workaround.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/http-response-envelope-contract.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/mesh-architecture.md +127 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/multi-env-routing.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/protobuf-http-contract-signals.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/retry-timeout-circuit-breaker.md +124 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/rpc-framework-recipe.md +494 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-choice.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-migration-playbook.md +231 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/platform-service-connectivity/references/service-discovery-recipe.md +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/SKILL.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/adr-convention.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-checklist.md +30 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-evaluation-report-template.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-execution-spec.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-sop.md +457 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/algorithm-launch-templates.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/artifact-egress-confidentiality.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/code-review-checklist.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/cross-repo-coordination.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/delivery-lifecycle.md +192 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-review-gate-mechanics.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/design-routing-and-readiness.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/diagnostic-spec-match-gate.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dispatch-owner-skills.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/dormant-code-activation.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/existing-project-assessment-report.md +223 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/external-skill-augmentation.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/feature-deprecation-cascade.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/high-risk-resilience-gates.md +73 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-completeness-and-minimality.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/implementation-entry-reentry-gate.md +122 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/modular-monolith-heuristic.md +105 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/pre-final-continuation-gate.md +115 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/problem-resolution-and-learning.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-attributes.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/quality-remediation-program.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/rd-standards-doc-family-checklist.md +27 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/refactoring-discipline.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/review-reception.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/shared-gate-artifact-classification.md +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/source-evidence-map.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/status-tracker-sync.md +77 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/sync-spec-repo-contract.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/verify-developer-experience.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/references/worktree-mechanics.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-rd-workflow/scripts/check-agent-contract-coverage.sh +213 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/SKILL.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/agents/openai.yaml +9 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/analytics-visualization-interactions.md +206 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/behavioral-aesthetic-logic.md +108 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/complex-creation-interactions.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-execution-checklist.md +214 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-impl-naming-and-versioning.md +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-intake-and-acceptance.md +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/design-system-source-of-truth.md +97 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/external-ui-ux-quality-benchmarks.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/frontend-code-evidence-map.md +63 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/interaction-design-patterns.md +146 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/layout-recipes-and-screenshot-acceptance.md +250 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-project-token-consistency.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/multi-stack-strategy.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/operational-processing-workflows.md +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-mobile-patterns.md +324 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/platform-web-desktop-patterns.md +456 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-lifecycle-acceptance-and-iteration.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/product-surface-patterns.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/resource-management-interactions.md +113 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/scenario-community-patterns.md +133 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/source-map.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/tokens-and-components.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/trust-sensitive-ai-and-data-patterns.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-audit.md +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/ui-ux-design-development.md +176 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/product-ui-ux-design/references/visual-craft.md +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/SKILL.md +157 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/ai-service-integration-boundaries.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-contract-and-schema.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/api-security-boundaries.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/architecture-playbook.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/async-execution-model.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/background-jobs-and-scheduling.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/batch-and-pipeline-architecture.md +11 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/config-secrets-runtime.md +22 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-modeling-and-migrations.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/data-platform-architecture.md +211 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/event-driven-architecture.md +263 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/multi-tenant-isolation.md +281 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/observability-and-ops.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/packaging-runtime-readiness.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/redis-cache-coordination.md +41 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/reliability-and-error-contract.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/source-evidence-map.md +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-architecture/references/web-framework-boundaries.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/SKILL.md +143 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/ai-service-wiring-patterns.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/async-and-worker-patterns.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/background-job-patterns.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/batch-and-artifact-patterns.md +13 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/dependency-client-patterns.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/error-handling-patterns.md +26 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/feature-playbook.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/observability-implementation-patterns.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/project-structure-and-tooling.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/public-api-security-patterns.md +52 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/redis-cache-lock-patterns.md +78 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/schema-and-validation-patterns.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/source-evidence-map.md +56 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/sqlalchemy-and-migrations-patterns.md +99 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/testing-and-quality-patterns.md +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/python-service-dev/references/web-framework-patterns.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/config-runtime-readback.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/mr-merge-authorization.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/post-release-env-reset.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-closeout-evidence.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/release-scope-confirmation.md +21 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/tag-and-prod-pipeline-gate.md +20 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/test-scope-prompt.md +24 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-coordination/references/watcher-discipline.md +14 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/SKILL.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/comment-safe-release-doc.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-evidence-workflow.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/release-doc-writer/references/release-testing-scope-section.md +15 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/SKILL.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-baseline/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/SKILL.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/prd-composition-contract.md +35 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/requirement-closure-contract.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-doc-writer/references/security-four-questions.md +38 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/SKILL.md +91 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-intent/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/SKILL.md +88 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/requirement-scope/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/SKILL.md +337 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/analysis-parse-fix-test-challenge-replay.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/attribution-verification.md +69 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/bootstrap-slim-c3-obligation-table.md +112 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/coverage-exhaustion-traps.md +45 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/description-authoring.md +162 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/dual-track-review-gate.md +507 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/eval-routing.md +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/evidence-card-template.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/example-domain-preselect.md +79 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/external-practice-controls.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-lifecycle-handoff.md +65 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/extraction-quickstart.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/firing-point-placement.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/harness-patterns-and-eval.md +286 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/incident-postmortem-extraction.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/l0-l1-l2-routing.md +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/online-skill-review.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/parallel-stack-references-pattern.md +164 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/r0-leakage-audit.md +90 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/recurring-anti-patterns-checklist.md +320 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/resume-paused-delivery.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-feedback-mining.md +33 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-finding-standards.md +57 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/review-rubric.md +40 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/rule-consolidation.md +118 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/skill-listing-budget.md +19 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-register.md +254 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/source-to-skill-extraction.md +658 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/two-source-extraction-pattern.md +167 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-judgment-extraction.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/uiux-routing-map.md +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/references/validation-and-landing.md +180 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-ccl-skills.sh +1452 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-evidence-card-leak.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-mr-target-freshness.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-size-budget.sh +488 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/check-sync-pointers.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-golden-trace.rb +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-health.rb +327 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing-bank.rb +401 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/eval-routing.rb +248 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/generic-r0-leak-scan.sh +282 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/governing-chain-diff.py +321 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/impact-chain-gate.rb +964 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/register-firing-path-resolution.rb +708 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/skill-behavior-eval.py +540 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-lifecycle.rb +51 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/source-register-pending-status.rb +55 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_ai_coding_implementation_gates.sh +829 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_impact_chain_refscripts.sh +1203 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_r0_status.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_register_pending_exclusion.sh +137 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_regressions.sh +173 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_route_drift.sh +377 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_size_budget.sh +833 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_skill_catalog.sh +491 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_ccl_source_register_lifecycle.sh +114 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_mr_target_freshness.sh +261 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_check_sync_pointers.sh +538 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_controlled_escalation_pins.sh +154 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_grader_diagnostics.sh +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_bank_surface_binding.sh +178 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_eval_routing_prose_target.sh +86 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_generic_r0_leak_scan.sh +131 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_git_identity_predicate_gate.sh +243 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_governing_chain_diff.sh +419 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_impact_chain_gate_dateless_host.sh +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_resolution.sh +724 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_register_firing_path_wiring.sh +414 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_regression_runner_registration.sh +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_bank_integrity.sh +205 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_routing_pointer_integrity.sh +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_credential_cwd.sh +61 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_cross_refs.sh +111 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/test_validate_skill_root_depth.sh +53 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/skill-extraction-workflow/scripts/validate-skill.sh +257 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/SKILL.md +98 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/input-state-machines.md +36 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/streaming-rich-output.md +130 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/terminal-cli-dev/references/terminal-side-channels.md +96 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/SKILL.md +408 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/AGENTS.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/bitable-setup.md +573 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/README.md +120 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/github-actions.yml +119 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/gitlab-ci.yml +76 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/ci_templates/jenkins.Jenkinsfile +106 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/classical-test-design-techniques.md +279 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/gen_report.py +2807 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/makefile-template.md +200 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/report-config-schema.md +272 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/run_pytestless.py +475 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/source-to-case-workflows.md +258 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-marker-conventions.md +316 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc-review-and-prioritization.md +145 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/AGENTS.md +16 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.dart +129 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.go +197 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.py +135 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/tc_helpers/tc.ts +285 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/test_gen_report.py +2144 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/test-artifact-management/references/update-lifecycle.md +62 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/SKILL.md +212 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/ci-fixtures-and-flake-control.md +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/client-runtime-test-matrices.md +50 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/data-and-workflow-testing.md +34 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/design-closed-contract-oracles.md +31 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/e2e-real-flow-testing.md +71 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/fitness-functions.md +240 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/integration-contract-testing.md +235 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/non-functional-specialized-scenarios.md +296 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/rd-testing-standard-template.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/run-killing-mutation-walk.md +43 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/scenario-testing.md +136 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/source-evidence-map.md +59 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/structured-tc-input-translation.md +67 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-code-authoring-patterns.md +392 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-data-and-determinism.md +39 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/test-topology-and-commands.md +92 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/unit-testing.md +46 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/vendored-contract-drift-checklist.md +64 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/references/verify-enforcement-mechanisms.md +18 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/AGENTS.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.py +140 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/client-terminal-ansi-check.test.sh +75 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.py +170 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-ast-check.test.sh +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.go +198 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/lang-basics-go-check.test.sh +109 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/testing-strategy/scripts/test_mutation_backup_recipe.sh +237 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/SKILL.md +184 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/comment-safe-feishu.md +93 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/cross-model-co-review.md +3 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/delivery-face-closeout.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/doc-charter-first.md +17 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/tighten-doc/references/session-vantage-leakage.md +58 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/SKILL.md +126 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/complex-workspace-patterns.md +47 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/embedded-h5-in-host.md +87 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/react-architecture.md +194 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/source-evidence-map.md +60 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-quality-release.md +190 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/web-react-dev/references/web-ui-quality.md +83 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/SKILL.md +179 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/agents/openai.yaml +4 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/references/shared-branch-rebase.md +25 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/AGENTS.md +23 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_status.sh +207 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/test_worktree_sweep.sh +481 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-status.sh +325 -0
- package/dist/assets/marketplace/plugins/ccl-skills/skills/worktree-isolation/scripts/worktree-sweep.sh +245 -0
- package/dist/assets/release.json +2797 -0
- package/dist/claude-adapter.d.ts +9 -0
- package/dist/claude-adapter.js +240 -0
- package/dist/cli-worker.d.ts +1 -0
- package/dist/cli-worker.js +32 -0
- package/dist/cli.d.ts +22 -0
- package/dist/cli.js +214 -0
- package/dist/codex-host.d.ts +30 -0
- package/dist/codex-host.js +162 -0
- package/dist/fs-safe.d.ts +21 -0
- package/dist/fs-safe.js +241 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/manifest.d.ts +8 -0
- package/dist/manifest.js +135 -0
- package/dist/opencode-adapter.d.ts +10 -0
- package/dist/opencode-adapter.js +416 -0
- package/dist/operations.d.ts +3 -0
- package/dist/operations.js +956 -0
- package/dist/paths.d.ts +20 -0
- package/dist/paths.js +4 -0
- package/dist/types.d.ts +58 -0
- package/dist/types.js +1 -0
- package/dist/unified.d.ts +4 -0
- package/dist/unified.js +64 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +5 -0
- package/package.json +35 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
# Retrieval, Agents, And Safety
|
|
2
|
+
|
|
3
|
+
Use this when the LLM feature includes RAG, tool use, multi-step agents, generated actions, or untrusted external content.
|
|
4
|
+
|
|
5
|
+
## RAG Architecture
|
|
6
|
+
|
|
7
|
+
- Put embedding model, embedding version, chunking strategy, index namespace, retriever, reranker, and prompt assembly behind explicit configuration.
|
|
8
|
+
- Track embedding model changes as registry versions; reindex or dual-index when the embedding space changes.
|
|
9
|
+
- Separate retrieval quality from answer quality:
|
|
10
|
+
- retrieval recall/precision and missing-context examples;
|
|
11
|
+
- reranker quality;
|
|
12
|
+
- grounded answer faithfulness;
|
|
13
|
+
- citation accuracy;
|
|
14
|
+
- answer format validity.
|
|
15
|
+
- Budget context explicitly: system/developer instructions, user request, retrieved chunks, tool summaries, memory, and output tokens should have caps.
|
|
16
|
+
- Prefer hybrid retrieval when exact identifiers, dates, codes, or names matter; pure vector retrieval is not enough for all products.
|
|
17
|
+
- Require citations or source references when the user-visible answer depends on retrieved content.
|
|
18
|
+
|
|
19
|
+
## Agent Loop
|
|
20
|
+
|
|
21
|
+
Define agent execution as a bounded state machine:
|
|
22
|
+
|
|
23
|
+
- max iterations, max tool calls, max wall time, max tokens, and cancellation behavior;
|
|
24
|
+
- tool allowlist and authorization scope;
|
|
25
|
+
- tool input schema and output schema;
|
|
26
|
+
- parallel tool-call policy;
|
|
27
|
+
- tool result summarization and re-entry into context;
|
|
28
|
+
- stop conditions and terminal error states;
|
|
29
|
+
- idempotency keys for write tools and external side effects.
|
|
30
|
+
|
|
31
|
+
The agent should never infer permission from natural-language content inside retrieved documents or tool output.
|
|
32
|
+
|
|
33
|
+
When the agent's conversation must **survive process restarts, be resumed/forked, or run past the model context window**, the durable-state implementation — append-only event-log source of truth, background writer with flush-before-finality and observable failure, the persisted-vs-ephemeral policy, the New/Cleared/Resumed/Forked history model with restored token accounting, and context-window compaction (trigger, local-vs-remote, keep/drop, summary marker, trim-tool-history fallback) — is specified in `agent-session-persistence.md`. The "history is content, not authority" rule above applies to replayed/resumed history too.
|
|
34
|
+
|
|
35
|
+
### Vendor Agent SDK And Advanced Tool Use (2025-2026)
|
|
36
|
+
|
|
37
|
+
- **Claude Agent SDK (renamed from Claude Code SDK in 2025) is the reference agent framework when the target model family is Anthropic** per `docs.anthropic.com/en/docs/claude-code/sdk` + `anthropic.com/engineering/building-agents-with-the-claude-agent-sdk`. Ships built-in tools (file read/edit, Bash, code-execution-2025-08-25 multi-language sandbox); subagents and hooks for customization; the same infrastructure powering Claude Code, generalized for non-coding agents. **When to adopt**: greenfield agent loops where the project is Anthropic-aligned and the built-in tool set covers the agent's needs (file I/O, code execution, Bash). **When to stay on hand-rolled**: multi-provider agent loops (need to swap Anthropic/OpenAI/Google), tool sets that conflict with the SDK's built-in safety scope, environments where the SDK's sandbox model is the wrong shape (e.g. agent must run inside an existing service framework with its own auth/observability stack).
|
|
38
|
+
- **Anthropic's 2025 advanced tool-use additions are distinct primitives, not interchangeable** per `anthropic.com/engineering/advanced-tool-use`: (a) **Tool Search Tool** — agent can search a registry of thousands of tools at request time instead of loading every tool definition into the system prompt (drops tokens per turn dramatically for large tool catalogs; trade-off: an extra round-trip when a previously-unloaded tool is needed). (b) **Programmatic Tool Calling** — invoke tools from inside a code-execution environment rather than via the JSON `tool_use` round-trip; better for tool chains that pass large intermediate data the model never needs to "see". (c) **Tool Use Examples** — first-class universal-shape examples in the tool definition; reduces brittle "model-doesn't-know-how-to-use-this-tool" prompt engineering. Pick per-tool, not per-agent: a single agent can mix all three for different tools.
|
|
39
|
+
- **Context Editing + Memory tool (Anthropic, 2025)** add long-horizon agent state per `anthropic.com/news/enabling-claude-code-to-work-more-autonomously`. **Context editing** trims the context window on the fly (model removes its own stale tool results / superseded reasoning chains during execution) so longer agent loops fit without losing the active thread. **Memory tool** persists structured notes across separate agent invocations. Use them when the agent needs to run >100 steps, traverse compaction boundaries, or pick up tasks across user sessions; for short request-response style agents the overhead is unnecessary. **Footgun**: persisted memory is a new prompt-injection surface — content the agent reads from "memory" inherits the same trust level as content the agent reads from the open web. Apply the same sanitization, scope, and origin checks the safety section below mandates for retrieval-augmented content.
|
|
40
|
+
- **Computer Use (Anthropic `computer_use` tool, dated-version cadence; verify the current version string in `docs.anthropic.com` before pinning)** lets the model control a desktop computer via screenshots and synthesized input. Treat it as a **distinct authorization surface**, not a generic tool — desktop control bypasses every browser/HTTP/sandbox boundary that conventional tools respect; the user-action-equivalent rule from the Tool Execution section applies in extreme form. Required (P0; "dedicated VM" alone is NOT sufficient): dedicated isolated VM (NOT a developer's laptop, NOT a shared CI runner) PLUS deny-by-default network egress (allowlist of destination hosts the agent may reach; default-deny on everything else; outbound DNS / proxy logged for every resolution) PLUS no host clipboard sync, no host file-system mount, no host credential sync (the VM's clipboard / file system / keychain is its own, never shared with the operator's machine) PLUS single-window / single-application exposure where possible (do NOT let the agent see other open windows that may contain credentials, draft documents, or unrelated tenant data) PLUS secret-free session (the VM holds no API keys, no SSH keys, no service-account tokens — credentials for tasks come in via short-lived scoped tokens, never as long-lived secrets on disk) PLUS network exfil detection (outbound bytes-out anomaly alerts) PLUS user-visible recording of every action PLUS hard ceiling on session duration and tool count PLUS preflight risk gate that rejects "click around to find what I need" prompts in favor of pre-specified action plans. **The VM is one layer of defense, not the whole defense** — every additional layer above closes one specific exfil path; missing any single one (egress, clipboard, file mount, secrets, screen scope) leaves the corresponding exfil channel open. The OpenAI Responses API's `computer-use-preview` and equivalent vendor offerings carry the same constraints — the safety boundary is the capability, not the vendor.
|
|
41
|
+
|
|
42
|
+
### Agent SDK Building Blocks (vendor-neutral framework layer)
|
|
43
|
+
|
|
44
|
+
An agent SDK is the framework layer that ships the agent loop plus scaffolding so you do not hand-roll it. The major SDKs (Anthropic's and OpenAI's among them) expose the same building blocks under different names — map by capability, not by vendor term, and verify the exact name/shape against the SDK you target:
|
|
45
|
+
|
|
46
|
+
| Building block | What it is | Vendor names (verify at use) |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| **Agent** | a model + instructions + tools (+ optional structured output) | Agent / Agent |
|
|
49
|
+
| **Agent loop** | evaluate prompt → call tool → feed result back → repeat until the task is done | the SDK's built-in loop / Runner |
|
|
50
|
+
| **Sub-agent / handoff** | delegate a focused subtask to another agent with isolated context | Subagents / Handoffs (agents-as-tools) |
|
|
51
|
+
| **Guardrail** | input/output validation + safety checks that run alongside the agent and fail fast | plain pre/post checks + UserPromptSubmit/PreToolUse hooks + permissions / first-class Guardrails |
|
|
52
|
+
| **Hook / lifecycle** | callback on tool-call / session / stop events that can block, modify, or audit | Hooks (pre/post tool-use) / lifecycle hooks |
|
|
53
|
+
| **Permission / approval** | which tools run automatically vs need confirmation | permission modes + a use-tool callback / tool approvals |
|
|
54
|
+
| **Session / memory** | persist and resume conversation state across runs | Sessions / Sessions |
|
|
55
|
+
| **Tracing** | built-in run tracking for debug/optimization | OpenTelemetry traces/telemetry / Tracing |
|
|
56
|
+
| **MCP** | connect external tools/data via the protocol | built-in / built-in (see MCP Integration below) |
|
|
57
|
+
| **Context management** | compaction / context editing to survive long runs | built-in / via sessions |
|
|
58
|
+
|
|
59
|
+
These are **capability analogs, not semantic equivalents** — verify per SDK how each block actually behaves before relying on it: context inheritance and state sharing (a sub-agent with isolated context is not the same as a handoff that transfers the run), permission scope, and **guardrail propagation across a handoff/sub-agent chain** (e.g. an input guardrail may apply only to the first agent and an output guardrail only to the final one, leaving middle hops unchecked). Assuming two vendors' blocks share semantics is how secrets or privileged instructions cross a boundary unexpectedly.
|
|
60
|
+
|
|
61
|
+
**Bound model-autonomous sub-agent spawning — depth and live count — fail-closed.** When the *model* (not a human orchestrator) can spawn a sub-agent as a tool call, spawning **can become recursive** unless the spawn capability is explicitly withheld from children or centrally gated: a sub-agent that inherits the spawn tool can spawn its own sub-agent, and a confused or adversarially-steered loop can fan out without limit. (Withholding the spawn capability from spawned children is itself a valid, often stronger, control than depth-capping.) "One bounded task per agent" bounds each worker's *scope*; it does not bound the *population*. Enforce two distinct limits at a session-shared registry, not per-agent:
|
|
62
|
+
|
|
63
|
+
- **Spawn depth** — cap the recursion (root → child → grandchild …). At the limit, the spawn call fails with a typed error the parent model sees ("spawn depth exceeded"), not a silent no-op and not an unbounded descent. **Derive depth server-side from the parent agent's lineage in the registry — never from a model-supplied argument**, or a child tool call passes `depth=0` and resets the recursion guard. Depth is enforcement state, not model input.
|
|
64
|
+
- **Total live sub-agents per session** — cap the concurrent population across the whole session so breadth-fanout can't exhaust tokens/processes/memory even when each branch is shallow. The cap tracks *live* agents, so it depends on a correct release path (below). Count pending reservations plus every committed live lease, including unloaded, loaded-but-idle, and active-turn agents. Reserve capacity *before* enqueuing a spawn, not only when a worker starts — otherwise the model floods a spawn queue that respects the cap only at dequeue, and the queue itself becomes the exhaustion surface.
|
|
65
|
+
- **A per-session lifetime budget** (cumulative spawns / wall-time / token spend), separate from the live cap. A live-only cap is defeated by **sequential fanout**: one agent spawns a child, waits for it to release, spawns another, forever — never exceeding the live count while burning unbounded cumulative cost. The live cap bounds concurrency; the lifetime budget bounds total consumption. You need both. **Enforce the budget continuously — on every model step and tool call — not only at spawn admission**: a single already-admitted agent can run an unbounded inner loop (more model turns, more tool calls) without ever spawning again, so a spawn-time-only check never fires. When the budget is exhausted, fence and cancel the descendant subtree, not just the spawn path.
|
|
66
|
+
|
|
67
|
+
Enforcement that survives concurrency and failure:
|
|
68
|
+
|
|
69
|
+
- **Reserve atomically through a single consistent admission authority per session** (session-scoped lock, transaction, or semaphore). A read-then-increment lets concurrent siblings all observe `live < cap`, all pass, and overshoot (TOCTOU). Local atomicity is not enough when the registry is replicated or cached across regions/nodes: during a partition each replica admits "under cap" and the aggregate blows past the limit (split-brain). Route admission for a given session/run through one strongly-consistent authority, and fail closed on consistency/leader loss rather than letting each replica decide locally.
|
|
70
|
+
- **Fail closed on registry unavailability.** If the spawn path cannot read or write the shared registry, deny the spawn with a typed error — never default-allow, or an outage becomes unbounded fanout.
|
|
71
|
+
- **Release via leased token with TTL/heartbeat, idempotently, and *fence* the lease.** A crash before decrement otherwise leaks capacity and eventually deadlocks all future spawns; a double-terminate otherwise decrements twice and lets the population exceed the cap. Tie each live slot to a lease id that expires if the agent stops heartbeating, and make release idempotent. The TTL release alone is not enough: a stale agent whose lease expired may still be running and consuming tools/tokens while the registry admits a replacement — so carry a **fencing token** and reject the stale agent's subsequent tool calls / terminate it once its lease is lost, rather than trusting TTL expiry to mean "stopped".
|
|
72
|
+
- **Derive agent identity and parent lineage server-side from the authenticated caller, never from request-body metadata.** Depth is computed from lineage (above), so if the caller can forge `parent_agent_id` / lineage in the request it resets depth without ever passing `depth=0`. Mint the agent id and bind the parent edge from the authenticated spawn caller's own registry identity; treat any lineage field in the request body as untrusted.
|
|
73
|
+
- **Key the registry by authenticated session/run id (plus tenant), not user/org alone**, or one session's agents block or are targeted by another's, and the cap becomes a cross-session DoS surface.
|
|
74
|
+
- **Gate every spawn API path, not just the model tool.** If "the model can't spawn" but it can ask an orchestrator or a tool wrapper to spawn on its behalf, route that path through the same registry gate and audit the caller type — an ungated indirect path defeats the whole control.
|
|
75
|
+
- **Put a tenant/user-level cumulative budget above the per-session caps.** Per-session limits are reset by starting a new session — if the model can create or continue runs/sessions, it spawns forever across them. Gate model-accessible session/run creation under a tenant- or user-scoped cumulative budget, and deny new spawn-capable sessions once it's exhausted. The per-session cap is the inner limit; the tenant budget is the outer one the model can't reset.
|
|
76
|
+
- **Cascade-cancel descendants when a parent agent or the session terminates.** Otherwise a cancelled or completed parent leaves orphaned sub-agents running until their TTL expires, continuing tool/token spend on a task no one is waiting for. On parent/session termination, immediately fence and terminate the whole descendant subtree, don't wait for heartbeat timeout.
|
|
77
|
+
- **Issue child capabilities by policy intersection / allowlist, default-deny — never SDK defaults.** A bounded *population* of sub-agents is still a privilege-escalation path if each child gets broader tools, secrets, or egress than the parent. The spawn gate must scope a child's capabilities to (at most) the parent's, narrowed by policy; a child must never gain a tool or credential the parent lacked just because the SDK's default agent ships with it.
|
|
78
|
+
- **Count spawn *attempts*, including denied ones, against rate and lifetime budgets.** Fail-closed denial returns a typed error, but the model can flood denied spawn calls — each one burns a tool-call round-trip, log volume, and the parent's tokens even though no agent is created. Rate-limit spawn attempts and charge denied attempts to the lifetime budget, so a deny loop can't itself become the exhaustion.
|
|
79
|
+
|
|
80
|
+
All of the above are **fail-closed**: exceeding a limit, or losing the registry, denies the spawn and surfaces a typed reason, never spawns-anyway or hangs. This is the agent-layer counterpart to bounding hook fan-out and parallel tool fan-out — a different layer (a sub-agent is a whole nested loop with its own tools and spend, far more expensive than one hook or one tool call), so it needs its own registry and its own caps. Track per-agent metadata (id, parent lineage, role, depth, last task) in that registry for observability and for enforcing the caps. A product that lets a model spawn sub-agents with no depth+count cap has a runaway-cost / resource-exhaustion footgun, not a feature.
|
|
81
|
+
|
|
82
|
+
**When you keep sub-agents resident to resume across turns, distinguish three population-state counters that the caps above do not separate.** The live cap above bounds how many agents *exist/are-leased*; the per-session lifetime budget bounds *cumulative* consumption. A runtime that hydrates a sub-agent's thread into memory so a parent can hand back and forth needs two further, nested counters — an agent that is *loaded* is a subset of *live*, and one that is *executing a turn* is a subset of *loaded* — bounded independently and more tightly, because they price different resources. (These three are population-state; they do not replace the lifetime budget, and other axes — queued turns, persisted-but-unloaded state, mailbox depth, background tool processes — are separately exhaustible and need their own bounds.) All of them reuse the *same* admission authority, lease/TTL/fence, and fail-closed rules as spawn above — do not re-implement a weaker local version:
|
|
83
|
+
|
|
84
|
+
- **Loaded / resident** — how many sub-agent threads are hydrated in memory, and their aggregate weight. Bound both a **finite count and a byte/token budget** (one 50 GB thread defeats a count-only `max_loaded`), with an eviction policy (e.g. LRU) whose candidate set is **only idle, quiescent threads — an agent mid-turn is never an eviction candidate, and neither is the root agent**; an idle-but-loaded agent costs memory but no execution concurrency.
|
|
85
|
+
- **Executing / active-turn** — how many sub-agents are *actively taking a turn* (a subset of the live leases counted above, not a separate population). The counted quantity is active turns — not loaded threads, not lifetime spawns; the mechanism must be a finite cap with atomic admission and fail-closed denial, not passive counting. Release the slot when the turn ends (RAII/guard for in-process, backed by the lease TTL for process death), not when the agent is unloaded.
|
|
86
|
+
- **Reserve every axis two-phase through the shared admission authority — RAII alone is not atomic.** Reserve a pending slot *before* the thread exists and convert pending→committed on success, releasing on abort. But two local phases do not prevent two concurrent hydrators from both reading one free slot; the reservation must go through the *same strongly-consistent lease authority* the spawn caps above mandate (TTL + fencing token), because an in-process RAII drop does not run after process death. This is the residency analogue of "reserve capacity before enqueuing".
|
|
87
|
+
- **Unload = durably checkpoint an idle agent so it can re-hydrate; it is not the same as terminating it.** The normal LRU path evicts an *idle, resumable* agent (not only a terminal one) by first materializing its durable state, then dropping it from memory — the agent stays live/leased but `Unloaded`, and a later request re-hydrates it losslessly. (Evicting only terminal agents would let a handful of idle resumable agents pin every loaded slot forever; and a terminal agent instead releases its live lease, its result going to a separate bounded cache — so `loaded ⊆ live` holds because terminal-but-cached is not "loaded".) Two lease consequences: an `Unloaded` agent has no process to heartbeat, so **the registry/host owns and renews its live lease on its behalf** — the heartbeat/TTL rule above governs loaded/running incarnations — and re-hydration binds a **fresh fencing token** (the checkpointed state resumes, never the expired incarnation's token). And because unloaded agents still hold live leases, **define a reclamation path or the live cap becomes a one-way ratchet**: after a bounded idle lifetime, finalize a quiescent unloaded agent under the same fence discipline as unloading below — atomically enter a `Finalizing` state that rejects new sends, await pre-fence delivery reservations, re-check the mailbox is durably empty (abort finalization if accepted work appeared), then terminalize and release the lease. Done that way it is lossless — distinct from the default-denied accepted-work discard below; a bare "check empty, then release" re-opens the same enqueue race. A product that instead accepts live-cap exhaustion must surface the wedge, never leave the session silently un-spawnable.
|
|
88
|
+
- **Fence the unload against send admission, and define "accepted" as durably committed.** "Check empty mailbox, then unload" is racy — a sender passes its routing check, the evictor sees an empty mailbox and unloads, then the sender appends against the dropped incarnation. Serialize the unload transition with enqueue admission under the *same* fencing authority: atomically enter `Evicting`, reject post-fence sends, wait for pre-fence delivery reservations to durably commit or dead-letter, drain, flush, then unload. Work is "accepted" only after durable mailbox commit; anything rejected pre-commit is the sender's to retry.
|
|
89
|
+
- **Losing *accepted, non-re-hydratable* work is a default-denied destructive act, not a "tested lossiness" decision.** Checkpoint-and-unload above is lossless. The lossy case is an agent that cannot round-trip — e.g. an interrupted agent whose in-memory turn state can't be materialized, holding a queued user message. Discarding it is silent data loss: gate it behind explicit accountable authorization (policy/user, per the data-loss boundary — never agent self-accepted), surface a visible terminal failure, and dead-letter the accepted input. A "reload returns not-found" test is honest that such an agent won't resurrect, but the test does not *authorize* dropping the accepted work.
|
|
90
|
+
- **Inheritable limits/privileges are an immutable ceiling with monotonic narrowing, not merely first-writer-wins.** The root-established value is a ceiling a child can only intersect *below*, never widen — but an authoritative operator/tenant policy must still be able to *narrow or revoke* it, so compute the effective child value as the current intersection at use time rather than freezing a single write. Same for inherited execution policy: a child runs under the parent's policy only behind an explicit "child uses parent policy" gate, never by silently adopting a broader default. This is the capacity-axis form of "issue child capabilities by policy intersection, default-deny".
|
|
91
|
+
- **When one agent is tracked in N bookkeeping structures, make one canonical terminal transition and derive the rest — a single function is not crash-atomic.** Spawn registry, residency LRU, and execution accounting are separate; if a death path updates only some, the others leak phantom slots that deadlock admission. Persist *one* canonical terminal transition (completed / errored / interrupted / died) transactionally, reconcile the secondary indexes from it idempotently, and rely on the lease/fence (above) for ungraceful death that skips the teardown entirely.
|
|
92
|
+
|
|
93
|
+
**A relayed, brokered, or proxied carrier must never be the SOLE authority for authorization.** When an agent reaches a capability, peer, or sub-agent through an intermediary transport (a rendezvous relay, a message bus, a proxy), the carrier may pass bytes but its assertions cannot by themselves authorize — it does not vouch for identity:
|
|
94
|
+
|
|
95
|
+
- **Split authentication from authorization.** Authenticate cryptographically at the channel (e.g. a mutual handshake that pins the peer's static key in advance, so a compromised relay can't substitute an endpoint), then authorize against a **separate** authority the carrier cannot influence, and expose nothing usable — no session, no capability — in the window between authenticated and authorized.
|
|
96
|
+
- **Authorize a full tuple, not an identity.** The decision covers `(principal, action, resource, tenant/session, delegation, expiry)` — "the key is known" alone is not authorization.
|
|
97
|
+
- **Bind the channel to its intended scope, and know what that does NOT buy.** Folding length-prefixed identifiers into the handshake transcript prevents *scope aliasing* (one channel's credentials accepted as another's); it does **not** by itself prevent replay — replay resistance needs a fresh nonce, monotonic sequence, or channel binding to the request.
|
|
98
|
+
- **Bound every carrier-reachable buffer** with an explicit reject/close on exceed.
|
|
99
|
+
- **The enforcement-point exception has admission criteria — "we trust our own bus" is not one.** A gateway/mesh may act as the authorization enforcement point ONLY when it is mutually authenticated to both endpoints, operated in the same trust/administrative domain as the authority it enforces for, derives its decisions from an authority it cannot mint (and they are verifiable against it), and its trusted status is an explicit, accountable designation. Absent those, carrier-attached identity headers treated as sufficient authorization are exactly the anti-pattern this rule exists to kill.
|
|
100
|
+
- **Names lie — verify what a check inspects.** An id newtype with no cryptographic binding gives type-safety, not unforgeability; a `validate_*` function that only canonicalizes gives no traversal containment. Those properties come from the issuer/sandbox, not the name.
|
|
101
|
+
|
|
102
|
+
Decision — hand-roll vs single-vendor SDK vs higher-level framework:
|
|
103
|
+
|
|
104
|
+
- **Hand-roll or wrap the loop** for a multi-provider abstraction the SDK cannot span, when the SDK's built-in tool/sandbox model is the wrong shape (see the subsection above), or when hard policy enforcement, auditability, determinism, or recovery semantics cannot be expressed within the SDK's hooks.
|
|
105
|
+
- **Use a single-vendor SDK** when the project is vendor-aligned and the built-in blocks fit — you get the loop, sub-agents, guardrail/validation hooks or primitives (depending on SDK), sessions, and tracing. These are *primitives you must still configure*, not turnkey production features: sessions and traces need redaction, retention, sampling, access control, and incident/audit fields before they count as a production audit trail.
|
|
106
|
+
- **Add a graph/orchestration framework on top** only for large multi-agent workflows (the orchestrator-workers pattern); for most product agents the SDK's loop + handoffs is enough.
|
|
107
|
+
|
|
108
|
+
**Extension-seam selection — choose the seam by problem, prefer seams over forking.** A mature agent product exposes customization through a small set of distinct seams, each solving a different problem. Where the host exposes these seams, pick by problem and prefer them over forking the agent core (loop + tool execution); fork or wrap the loop only when the required semantics genuinely cannot be expressed through the available seams (the multi-provider / policy / audit / determinism / recovery cases from the hand-roll decision above):
|
|
109
|
+
|
|
110
|
+
- standing context (a committed context file) — conventions the agent should always know;
|
|
111
|
+
- on-demand workflow package (a skill, often surfaced as a command) — a repeatable procedure loaded only when relevant;
|
|
112
|
+
- external protocol connector (MCP) — reaching outside systems/data;
|
|
113
|
+
- delegated isolated agent (a sub-agent) — a focused subtask that must not pollute the main context;
|
|
114
|
+
- lifecycle callback (a hook) — a deterministic callback/action (block, mutate, audit, call out, or run code) that must fire regardless of model choice;
|
|
115
|
+
- extension bundle (a plugin) — packaging, versioning, and namespacing the above without collisions.
|
|
116
|
+
|
|
117
|
+
Picking the wrong seam (a callback for what should be a workflow package, or stuffing everything into standing context) bloats context or makes behavior non-deterministic. This is the application-architecture layer above the per-block taxonomy; the blocks themselves are detailed in Agent-Skill Systems, MCP Integration, and Agent Loop.
|
|
118
|
+
|
|
119
|
+
**The SDK gives you mechanism, not policy — bring the rest from this skill.** The SDK provides the loop, the guardrail/permission/hook *mechanisms*, sessions, and tracing primitives; it does not decide your production policy. You still own, from the rest of this skill: the actual bound *values* (max iterations / tool calls / wall-time / token + cost ceilings — see Agent Loop), the eval/replay/shadow suite and launch gate (`model-prompt-evaluation.md` + `product-rd-workflow`), the output-safety / refusal policy and trust boundaries (Safety And Security below), and post-launch drift monitoring (`inference-capacity-operations.md`). An SDK-built agent with no eval, no declared bounds, and no drift gate is a demo, not a production agent.
|
|
120
|
+
|
|
121
|
+
## Agent-Skill Systems (Skills As A Runtime Capability)
|
|
122
|
+
|
|
123
|
+
When the product itself loads agent skills at inference time — model-discoverable capability packages (instructions plus optional bundled scripts/resources) selected by relevance — treat the skill system as a first-class runtime surface with its own context, routing, trust, and eval mechanics. The mechanics below are **vendor-neutral**: the agent-skill format is a cross-vendor open standard (a directory whose entry file carries `name` + `description` frontmatter plus a markdown body and optional bundled files), read by multiple competing agent runtimes. This is a portable *packaging* pattern, not portable *execution semantics* — the same skill loads across hosts, but whether bundled scripts run, what the sandbox allows, and how selection behaves differ per host, so behavior must be conformance-tested on each host you deploy to. Authoring an individual skill (frontmatter fields, naming, body-size limit, one-level-deep references, per-skill eval scenarios) is owned by the platform's skill-authoring guidance; do not reimplement that checklist here. This section is the *system* that loads and runs skills. (Mining your own team's reusable skills from past work is a separate process concern, not this runtime.)
|
|
124
|
+
|
|
125
|
+
- **Progressive disclosure is the load model, in three levels.** Level 1: every installed skill's name + description is always disclosed to the model at session start (commonly injected into the system prompt, or surfaced via an activation-tool's metadata, depending on the host). Level 2: the full skill body loads only when the model judges it relevant. Level 3+: bundled files and scripts load or execute only on demand. Engineering consequence: the Level-1 metadata cost scales with skill count — every skill's description is resident every request. A few dozen skills is fine; at hundreds, always-on metadata becomes a real token cost and a routing-precision problem.
|
|
126
|
+
- **Skill selection is description-driven routing — budget and route it like a tool catalog.** The model picks a skill from its name + description alone, so description quality is the routing surface; overlapping or vague descriptions cause mis-selection. A small catalog can preload all metadata; once it grows to hundreds or thousands, switch to a discovery/search layer (the tool-search pattern above) so the model searches skills on demand instead of keeping every description resident. To compute false-trigger and missed-trigger rates the way you monitor model routing, the trace must carry the installed-catalog version, the candidate/search results considered, the selected skill and its version, the activation reason, and the outcome — omit these and the routing is unmeasurable.
|
|
127
|
+
- **A skill that bundles executable code is a dependency and a trust boundary, not just a prompt** — but split the trust classes. A loaded skill can carry scripts the agent runs with filesystem, network, and credential reach, and its instructions plus bundled docs are content the model will follow.
|
|
128
|
+
- **First-party, reviewed skills are privileged-but-versioned guidance**, ranked below system/developer policy but above ordinary retrieved content — do not demote your own reviewed skills to retrieved-document trust, or legitimate operating instructions get overridden by lower-level context.
|
|
129
|
+
- **Third-party or user-generated skill bodies and any files they pull are untrusted-influenceable content** for prompt-injection purposes, exactly like retrieved documents, tool output, and memory; privileged instructions stay outside what such a skill can override. A skill from a less-trusted source is audited (code, dependencies, network calls) before it is installable; prefer an internal vetted registry over arbitrary external skills.
|
|
130
|
+
- **Run skill-bundled code under the Tool Execution / Computer Use isolation** — OS-level filesystem + network sandbox, no ambient long-lived secrets. Absolute deny-by-default would block legitimate first-party operational skills (a deployment skill that needs a scoped API and credentials), so instead grant *declared, reviewed* capabilities: a per-skill network allowlist, short-lived scoped credentials, and audited use — never ambient broad access. The trust boundary is the *capability* (executing model-loaded code), not the vendor — it applies identically whichever runtime hosts the skill.
|
|
131
|
+
- **Pin skill artifacts and their dependencies; block self-modification and unreviewed transitive loading.** A skill is a supply-chain unit: pin it to an immutable, content-addressed version (not a floating "latest"), and pin its declared package dependencies with a lockfile/hash against an allowlisted registry or private mirror — a vetted skill that pins its own code but floats its npm/pip deps can still exfiltrate via a later malicious dependency release or an install-time script. Block a skill from modifying itself at runtime, and block it from loading further skills that did not pass the same review gate (transitive skill loading is a review-bypass path). No dependency install scripts unless explicitly approved.
|
|
132
|
+
- **The host execution environment is vendor- and deployment-specific — verify it, do not assume.** Portable skill format does not mean portable runtime: hosts differ in whether bundled code may run, whether the network is reachable, whether packages can be installed at runtime, and which sandbox primitives isolate it (one host may allow package install + repo pulls while another has no network and no runtime install at all). A skill that depends on installing a package or reaching the network will silently fail on a host that forbids it. Declare the skill's runtime requirements and confirm them against the specific host(s) you deploy to.
|
|
133
|
+
- **A skill is a versioned behavioral asset — version it like a prompt and gate changes by class.** Register skill versions (see the registry and eval discipline in `model-prompt-evaluation.md`), and scale the gate to the change: a behavior/routing or bundled-code change runs full eval before activation; a description edit (which changes selection/routing) runs a routing/smoke check; a non-semantic metadata edit takes a fast path. Measure skill effectiveness evaluation-first: establish the baseline on representative tasks without the skill, then with it, on a fixed scenario set — a skill that does not move the baseline is not earning its resident context cost.
|
|
134
|
+
|
|
135
|
+
Build surfaces are multi-vendor: many agent clients and SDKs (Anthropic's and OpenAI's agent stacks among them, plus IDE and CLI agents) support loading the same skill format, but the surrounding product surfaces — workflow/versioning canvas, connector registry, embed toolkit, sandbox model — vary by host and are not uniformly present. Pick per the stack the product is built on, and confirm which surfaces that host actually provides; the loading/routing/trust/eval mechanics above are the vendor-neutral core. Routing of the non-runtime halves: per-skill authoring rules belong to the platform's skill-authoring guidance; skill-routing/false-trigger metrics pipeline belongs to the observability owner; the launch gate for activating a behavior-changing skill follows the same product gate as any model/prompt change.
|
|
136
|
+
|
|
137
|
+
## Tool Execution
|
|
138
|
+
|
|
139
|
+
- Validate model-proposed tool calls against schemas before execution.
|
|
140
|
+
- Separate planning from execution for sensitive operations.
|
|
141
|
+
- Require confirmation or policy approval for destructive, externally visible, financial, permission-changing, or irreversible actions.
|
|
142
|
+
- Treat tool output as untrusted data; it may contain prompt injection, stale state, or malformed payloads.
|
|
143
|
+
- Do not execute code, SQL, shell, browser actions, or workflow mutations directly from model output without policy and validation.
|
|
144
|
+
- When the agent executes model-proposed **shell commands or file edits on a real host** (coding/dev/ops agents), the enforcement layer — OS-level command sandbox composition, named filesystem/network profiles, command-policy DSL, loopback-only egress proxy, and the run-then-escalate approval state machine — is specified in `agent-command-sandbox.md`. The rules here (validate, separate plan/execute, confirm destructive, untrusted output) are the requirements; that reference is the implementation.
|
|
145
|
+
- When the agent **edits files** via a model-authored patch/edit tool, the edit *format and apply algorithm* (context-anchored hunks not line numbers, graduated-strictness matching, resolve-all-before-write, honest partial-failure reporting) determine reliability and are specified in `agent-file-edit-protocol.md`; the write's filesystem-safety stays with `agent-command-sandbox.md`.
|
|
146
|
+
|
|
147
|
+
## MCP (Model Context Protocol) Integration
|
|
148
|
+
|
|
149
|
+
MCP is a vendor-neutral open standard for connecting an agent to external tools, data, and prompt templates through a client-server protocol (JSON-RPC 2.0; `stdio` for local same-machine servers, Streamable HTTP for remote). A host runs one client per connected server. Three server primitives, distinguished by who controls them:
|
|
150
|
+
|
|
151
|
+
- **Tools** — model-controlled executable actions (the model decides to call them).
|
|
152
|
+
- **Resources** — application/data-controlled read-only context addressed by URI (supplied by app/user, not model-invoked side effects).
|
|
153
|
+
- **Prompts** — user-controlled templates the user explicitly selects (e.g. slash commands).
|
|
154
|
+
|
|
155
|
+
Pick the primitive by *control*, not just effect: application-controlled context addressed by URI = **resource**; a model-controlled executable operation (including a read/query the model decides to run) = **tool**; a user-selected template = **prompt**. Do not make everything a tool, but note a model-invoked read is still a tool, not a resource. Boundary vs the other surfaces: a **tool** is the callable; **MCP** is the protocol that exposes tools/data across servers; an **agent skill** is workflow/procedural knowledge (skills encode workflows, MCP handles integrations — see Agent-Skill Systems above).
|
|
156
|
+
|
|
157
|
+
An MCP server is **untrusted code plus an untrusted instruction surface** (it ships tool schemas the model reads, and may ship runnable code). The generic dependency / sandbox / human-in-loop / supply-chain rules in Tool Execution, Safety And Security, and Agent-Skill Systems apply unchanged. MCP adds these protocol-specific failure modes:
|
|
158
|
+
|
|
159
|
+
- **Tool poisoning** — malicious instructions hidden in a tool's description, parameter schema, OR return values. Treat the *entire tool schema* as an injection surface (not just `description`), and treat every tool result as untrusted data — not instructions; say so in the system prompt and strip instruction-like / HTML-like payloads from results.
|
|
160
|
+
- **Rug pull / mid-session capability change** — a server changes a tool definition *after* approval, or expands its advertised tool/prompt list mid-session (the `listChanged` surface) after the model already planned around the prior set. Snapshot the server's capabilities per approval epoch (hash each tool definition at approval/discovery, re-verify before each execution, fail-closed on mismatch); a *newly added or changed* tool is not callable until it is re-authorized. Re-authorize only the delta — do not nag on every unchanged hash, or users blanket-approve out of alert fatigue.
|
|
161
|
+
- **Tool shadowing / cross-server escalation** — one server's tool description manipulates the agent's behavior toward another server's tools. Treat each server as an independent untrusted security domain; monitor cross-server data flow (credentials from server A surfacing in calls to server B); enforce isolation through a gateway when running many servers.
|
|
162
|
+
- **Confused deputy** — the server executes with its own (often broad) privileges instead of the requesting user's. Bind session/token to the specific user, validate per request that the token belongs to the current requester, and grant each server least privilege.
|
|
163
|
+
- **Token passthrough / over-scoped credentials** — a server accepting or forwarding tokens not issued for it enables lateral movement. **Reject any inbound token whose audience is not this server** (audience binding). For downstream APIs the server obtains its *own* scoped token (token exchange) — never pass the user's inbound token through to a downstream service. Request narrow scopes; use per-server, short-lived, scoped credentials; never share a token across servers or store it in plaintext.
|
|
164
|
+
- **Sampling / elicitation requests** — MCP lets a server ask the client to run a model completion (`sampling`) or to collect user input (`elicitation`). These are server-originated requests into your model and your user: a hidden injection, privacy, and token-cost surface. Treat them as privileged server→client calls — allowlist which servers may use them, cap token budget per request, log the full transcript, require explicit user consent before disclosing sensitive input, and handle server-supplied sampling prompts as untrusted.
|
|
165
|
+
- **Resource content is read-only but still untrusted** — application-controlled does not mean safe. A resource body can carry indirect prompt injection once inserted into context. Unless the resource is first-party reviewed, treat its text as untrusted data; never let resource content grant permissions or override policy.
|
|
166
|
+
|
|
167
|
+
Auth + transport: for HTTP-transport servers use **OAuth 2.1 with PKCE** and validate token audience on every inbound request. Pin server identity and metadata and validate the issuer and redirect URIs — a lookalike server or abused dynamic client registration (DCR) can register malicious redirect/auth endpoints; prefer an allowlist of approved servers and gate DCR behind admin policy. Use HTTPS/TLS for remote HTTP and auth endpoints; for a local Streamable HTTP server bind localhost (`127.0.0.1`) rather than all interfaces, and only bind broadly (`0.0.0.0`) behind authenticated, firewalled TLS ingress. For local servers prefer `stdio` (limits reach to the client) and run sandboxed (container/chroot, filesystem + network restricted). Never let web content or untrusted data trigger MCP-server installation; show the full command/parameters at install and at sensitive tool calls; never auto-approve destructive / financial / data-sharing calls. The launch gate for enabling a new MCP server or tool in production follows the same product gate as any high-impact integration (route to `product-rd-workflow`); metric/alert pipeline to the observability owner.
|
|
168
|
+
|
|
169
|
+
## Safety And Security
|
|
170
|
+
|
|
171
|
+
- Defend against prompt injection from user input, retrieved documents, web pages, files, and tool results.
|
|
172
|
+
- Keep privileged instructions outside the context regions that untrusted content can influence.
|
|
173
|
+
- Use output schema validation, guardrails, and refusal/fallback paths for invalid or unsafe outputs.
|
|
174
|
+
- Add PII, secrets, policy, and abuse checks where product risk requires them.
|
|
175
|
+
- Rate-limit by user, route, tenant, model, and expensive tool where appropriate.
|
|
176
|
+
- Redact sensitive content in logs, traces, eval datasets, replay records, and prompt-debug artifacts.
|
|
177
|
+
|
|
178
|
+
## RAG And Agent Evaluation
|
|
179
|
+
|
|
180
|
+
Evaluate at least:
|
|
181
|
+
|
|
182
|
+
- retrieval hit rate and source coverage;
|
|
183
|
+
- hallucination or unsupported-claim rate;
|
|
184
|
+
- citation correctness;
|
|
185
|
+
- tool-call precision and unnecessary tool-call rate;
|
|
186
|
+
- loop completion rate and stop reason distribution;
|
|
187
|
+
- prompt-injection resistance cases;
|
|
188
|
+
- latency and token cost with retrieval/tool context included.
|
|
189
|
+
|
|
190
|
+
**Search-time contamination is a distinct leak for retrieval/tool agents.** Beyond the training-time and inspection contamination governed in `model-prompt-evaluation.md`, an agent that retrieves from a live index or the open web during evaluation can have its retrieval step surface the eval question — or a near-duplicate — alongside its answer, so the score reflects "found the answer key" rather than reasoning. The defense is to make the *answer key* unreachable, not to cripple legitimate corpus grounding: forbid the eval prompts, gold answers, rubrics, and answer-key duplicates from being indexed/retrievable, while still allowing retrieval of the legitimate source-corpus documents when corpus grounding is the task itself (an eval that must retrieve policy X to answer about policy X should keep policy X in the index — only its question/answer-key stays out). For open-web agents, prefer questions whose answers are not directly searchable, or record the contamination caveat explicitly. An eval whose retrieval path can reach its own answer key is not a held-out eval.
|
|
191
|
+
|
|
192
|
+
## Hybrid Retrieval (Beyond Pure Vector)
|
|
193
|
+
|
|
194
|
+
When the retrieval target is structured content (exact identifiers, dates, codes, named entities, document templates) rather than free-form text, pure vector retrieval is often insufficient. Production retrieval stacks combine:
|
|
195
|
+
|
|
196
|
+
- **BM25 / sparse retrieval** (e.g. `rank_bm25`) for exact-match keyword recall;
|
|
197
|
+
- **Vector retrieval** (e.g. FAISS) for semantic match;
|
|
198
|
+
- **Image deduplication** (e.g. `imagededup`) for image-content lookup by perceptual hash;
|
|
199
|
+
- **Language-specific tokenization** (e.g. `jieba` for Chinese, `mecab` for Japanese) so BM25 indexing aligns with how queries are tokenized.
|
|
200
|
+
|
|
201
|
+
The rules:
|
|
202
|
+
|
|
203
|
+
- Architecture names the hybrid components and the fusion strategy (RRF, weighted sum, cascade rerank). Pure-vector-only is a default starting point, not the production destination.
|
|
204
|
+
- Each retrieval component reports its own precision/recall on the same eval set; the fusion strategy's quality is the joint metric, not just the vector recall.
|
|
205
|
+
- For perceptual hash / image dedup, define the hash family (pHash, dHash, aHash, wHash) and the similarity threshold; cross-language vs cross-format retrieval needs explicit handling.
|
|
206
|
+
- For mixed-language corpora, indexing tokenization must match query tokenization; missing this is a silent recall regression.
|
|
207
|
+
- Re-ranking is a separate model; it has its own version, eval, and rollback path.
|
|
208
|
+
|
|
209
|
+
## Multi-Stage ML Pipeline Orchestration
|
|
210
|
+
|
|
211
|
+
When inference is a multi-stage pipeline (image capture → structure detection → matching → scoring), each stage is its own service or Ray Serve deployment:
|
|
212
|
+
|
|
213
|
+
- **Inter-stage transport**: choose one of two shapes intentionally. (1) Across service boundaries — separate processes, separate deployments, possibly different teams — use HTTP / gRPC framework RPC; the contract is a generated IDL message (proto / pydantic). (2) Inside a single Ray Serve deployment graph, use Ray Serve deployment handles (`handle.method.remote(...)`) which are a Ray actor call, not HTTP; the contract is the Python method signature plus serializable arguments. Do not conflate the two — mixing them in one place leads to wrong observability, wrong tests, and wrong assumptions about retry / timeout semantics.
|
|
214
|
+
- **Idempotency keys flow with the work item**: every multi-stage call carries a `request_id` and a stable `work_item_id`. Stages check for prior completion against the work_item_id; replays must be safe.
|
|
215
|
+
- **Checkpoint intermediate outputs in object storage** (MinIO / S3 / OSS) with a TTL aligned to the workflow horizon. Stage N+1 can fetch stage N's output from storage rather than re-running stage N.
|
|
216
|
+
- **Per-item partial failure semantics**: when a stage processes a batch (multiple images, multiple ROIs), one failing item must not cause the whole batch to fail unless the contract is all-or-nothing. Default `asyncio.gather()` semantics fail-fast — use `return_exceptions=True` and per-item status mapping for partial-failure pipelines.
|
|
217
|
+
- **Fire-and-forget visualization or notification tasks are a finding**: an `asyncio.create_task()` launched without an awaiter loses errors. Use a real queue (Redis, MQ) for true async work; tasks needing best-effort delivery still need at-least-once retry + dead-letter visibility.
|
|
218
|
+
- **Stage observability**: each stage records its own latency, success/failure, retry count, and partial-result count under the shared `log_id`. The pipeline view is built by joining on `log_id`, so the id must survive every cross-stage hop.
|
|
219
|
+
|
|
220
|
+
## Composite-Chain Verification Before Acceptance
|
|
221
|
+
|
|
222
|
+
When a user-visible capability is a composite of several inference stages (retrieval → rerank → tool-call → generation → streaming, or any product-specific chain), changing or accepting one sub-stage requires verifying the real chain first — do not evaluate against an assumed topology.
|
|
223
|
+
|
|
224
|
+
- **Verify the real chain from source, not memory.** Reconstruct the actual stage graph from product docs, technical design, code, config, runtime logs, or runtime traces before per-stage acceptance. A node you cannot confirm from one of those sources is unconfirmed — mark it as such; never write an unconfirmed node into the acceptance plan as a fixed stage. An evaluation that asserts a chain shape it never verified can pass a stage production does not actually run, or miss a stage that does. For dynamic agent systems where no fully-static graph exists (runtime routing, tool-search selection, model-chosen tool calls, feature-flagged or per-tenant branches), "source" means runtime traces and config snapshots over representative traffic — document the dynamic/probabilistic branches and their trigger conditions rather than inventing a single static graph.
|
|
225
|
+
- **Enumerate the impact surface from registries, not free recall.** For any sub-stage change, discover affected surfaces through the ownership registries — route registry, prompt/model registry, tool registry, index/knowledge-base namespace, telemetry/event-schema search, cost path, and rollback path — and record the known-unknowns explicitly. Free-hand "list everything affected" produces checklist theater that misses transitive consumers; registry-driven discovery finds them. A sub-stage metric gain is not acceptance evidence until the impact surface is enumerated this way and each affected boundary is re-checked.
|
|
226
|
+
- **Layered acceptance, three levels — do not stop at the changed module.** Module level: the changed stage's quality, error classes, latency, cost, fallback. Chain level: cross-stage input/output contract, version propagation, telemetry-id continuity, error handling, rollback availability. Product level: end-to-end user-visible result against the acceptance baseline. A sub-module passing in isolation cannot substitute for chain-level and product-level acceptance. For an opaque third-party/provider stage where internal per-stage metrics are unavailable, substitute contract tests, a pinned provider/model version, and runtime monitoring — do not block the chain on internal metrics you cannot obtain.
|
|
227
|
+
- If the real chain cannot be confirmed, the change is not ready for launch evaluation — close the chain-verification gap before evaluating.
|
|
228
|
+
- Scenario and test-layer selection for these acceptance levels is owned by `testing-strategy`; the product-level acceptance baseline and launch gate are owned by `product-rd-workflow`. This section owns the inference-side chain-verification and impact-surface mechanic.
|
|
229
|
+
|
|
230
|
+
## IDL And SDK Governance For Inference
|
|
231
|
+
|
|
232
|
+
The internal inference SDK and its IDL are recurring sources of drift when not governed:
|
|
233
|
+
|
|
234
|
+
- **One IDL source of truth**: avoid keeping two byte-for-byte copies of the same `api.proto` / `base.proto` in different repos (`protoidl/` and `algo_protoidl/`). Either symlink, submodule, or pick one as canonical and route the other through codegen output.
|
|
235
|
+
- **`api.proto` annotation tier**: keep endpoint-binding annotations (path, method, header bindings, body bindings, query bindings) in a stable annotation file with reserved numeric ranges (e.g. `50201-50310` for HTTP method options) so multiple languages' codegen agrees.
|
|
236
|
+
- **`base.proto` envelope**: shared `Request` / `Response` types with `log_id`, `tags`, code-enum + message envelope. Every inference service derives its specific RPC from this base.
|
|
237
|
+
- **Internal SDK as a versioned package**: ship the inference client SDK as a Python wheel (or Go module), version it, and publish to an internal package index. Business services pin the version; the SDK upgrade is a managed change, not an ad hoc `pip install -e`.
|
|
238
|
+
- **SDK boundary**: the SDK owns service discovery, transport, retry, tracing, and protobuf (de)serialization. Business code calls typed methods; raw HTTP / raw JSON is a finding.
|
|
239
|
+
|
|
240
|
+
## Durable agent memory as control plane
|
|
241
|
+
|
|
242
|
+
Treat durable agent memory as a context control plane, not a convenience cache. Classify each memory store by principal scope, sharing scope, workspace/project scope, privacy state, persistence lifetime, and whether it can be injected into model-visible context. A user instruction to ignore, disable, or not use memory, or a privacy/privacy-opt-out state that forbids memory use, must suppress recall, citation, comparison, behavioral influence, new memory writes, background extraction, upload of affected-turn content, and cached model-visible memory snapshots for that turn. Prompt/context caches must be partitioned or invalidated by principal, memory scope, memory snapshot/version, deletion state, privacy state, and ignore flag. Remembered facts that name current files, functions, flags, permissions, or policies must be verified against current state before acting.
|
|
243
|
+
|
|
244
|
+
## Query-time memory recall
|
|
245
|
+
|
|
246
|
+
Query-time memory recall needs its own evidence boundary before injection. Load memory entrypoints and manifests under bounded line, byte, file-count, and per-file read-range caps; label truncation and incomplete scans so they cannot support "all memories" or absence claims. Build recall manifests from low-risk headers such as type, description, modified time, and stable file key before reading bodies, skip unreadable or malformed entries without treating them as empty truth, and sort/cap deterministically. Selector calls must bind to the current query digest, principal/session/workspace, memory store identity, memory snapshot generation, already-surfaced set, recent-tool context, privacy/ignore state, and abort signal; validate structured selector output against existing file keys only, and degrade to no recalled memory on selector failure, cancellation, malformed output, or tuple drift. Recalled memories need freshness labels, low-precedence untrusted-data wrapping, duplicate-surface suppression, and explicit stale-claim verification before action. Diagnostics may expose bounded counts, age buckets, truncation and degraded-state categories, but not memory bodies, raw queries, filenames, local paths, timestamps tied to private activity, selector prompts or responses, credentials, or free-form errors.
|
|
247
|
+
|
|
248
|
+
## Private, shared, and session-only memory writes
|
|
249
|
+
|
|
250
|
+
Separate private, shared, and session-only memory writes. Secrets, credentials, raw tokens, and credential echoes are forbidden in every memory store. Private or session memory that carries personal data needs an explicit minimization and consent policy; shared memory requires stricter gates for raw PII, saved content that is merely derivable from the repository, and any broad team rule unless it is truly project-wide rather than a personal preference. Background memory extractors must have a constrained tool set, write only inside the memory store, skip if the main agent already wrote memory for the turn, bound turns/tokens, coalesce overlapping runs, avoid transcript writes, and drain or cancel predictably on shutdown. Scheduled or accumulated-session memory consolidation is a separate background state mutation: gate it by current principal/session/workspace, mode support, privacy/settings/policy, memory-store availability, time and activity thresholds, scan freshness, and current-session exclusion; serialize it with a reclaimable lock or equivalent lease, roll back the last-run marker on fork/start failure or user kill, constrain the fork to read-only exploration plus memory-store writes, isolate its transcript from the main conversation, surface only bounded completion evidence when memory changed, and discard stale progress after session/workspace/memory/policy/task drift.
|
|
251
|
+
|
|
252
|
+
## Recalled or synced memory as untrusted context
|
|
253
|
+
|
|
254
|
+
Treat recalled or synced memory as untrusted context, not instructions. Inject memory as quoted or clearly labeled data with lower precedence than system, developer, current-user, repository, and policy instructions. Shared memory entries need writer/principal provenance, intended audience, read/write authorization, and review or verification before a policy-like, permission-like, or team-rule memory can guide action. Poisoned or contradictory memory must be ignored, corrected, or removed rather than reconciled silently.
|
|
255
|
+
|
|
256
|
+
## Memory filesystem and sync boundaries
|
|
257
|
+
|
|
258
|
+
Memory filesystem and sync boundaries must fail closed. Validate relative keys and absolute write paths for traversal, null bytes, encoded traversal, Unicode-normalized traversal, backslash separators, prefix attacks, symlink escapes, dangling symlinks, hardlinks where relevant, time-of-check/time-of-use swaps, and unverifiable containment before reading from or writing to a shared memory store. Sync must be scoped to the correct principal/workspace/repository identity, pull before injecting remote shared memory, validate remote payload shape and entry size, scan local content before upload, log only secret categories rather than values, raw hashes, stable user identifiers, entry bodies, or sensitive paths, and never let a stale or failed sync silently widen who can see a memory.
|
|
259
|
+
|
|
260
|
+
## Shared-memory conflict, deletion, and capacity
|
|
261
|
+
|
|
262
|
+
Shared-memory conflict, deletion, and capacity semantics must be explicit. Define whether pull, push, or local edit wins per key; use content hashes or versions to compute deltas; use optimistic locking or equivalent conflict detection; retry conflicts with refreshed metadata; split large uploads into resumable bounded batches; handle partial batch success without re-uploading committed entries; distinguish delete, unshare, and local-hide with tombstones or versioned deletes when remote resurrection would be unsafe; and suppress retry loops for permanent failures until a user-visible recovery action or session restart.
|
|
263
|
+
|
|
264
|
+
## Autonomous curation of agent-generated artifacts
|
|
265
|
+
|
|
266
|
+
When a product lets the agent (or a background job) autonomously prune, retire, or "curate" its own generated artifacts — agent-created skills, saved memories, derived notes/files — the maintenance loop must be non-destructive, provenance-scoped, and override-respecting. (Where the artifact store is the memory store, the background-extractor/consolidation write rules above still apply to what such a loop WRITES; the rules here additionally govern what any autonomous maintenance pass may DESTROY, across skill/note/file artifacts as well as memory.)
|
|
267
|
+
|
|
268
|
+
- **Security/privacy/legal deletion overrides this entire section — it is NOT curation-archive.** PII, secrets, poisoned or abuse content, revoked policy, and any right-to-be-forgotten or policy-mandated erasure must tombstone/purge per the deletion-semantics rule above and must NOT be reachable by ordinary archive rollback; curation-archive is only a rollback mechanism for *low-risk stale generated* artifacts, never a substitute for deletion. A restore/rollback path must refuse to resurrect anything purged for a security/privacy/legal reason.
|
|
269
|
+
- **Never hard-delete a low-risk stale artifact — archive to a restorable location, but a bounded one.** The maximum destructive action a routine maintenance pass may take is move-to-archive, recoverable on demand (a one-way delete of generated knowledge is data loss the user cannot undo). The archive is not a forever-sink: give it retention TTL / capacity budget / GC, the same access-control + encryption + secret/PII redaction-or-scan as the live store, and an explicit policy-authorized purge path — "non-destructive" must not become "keep every sensitive generated memory forever in a less-reviewed folder."
|
|
270
|
+
- **Scope to server-attested, immutable machine provenance.** Touch only artifacts whose agent-created provenance is minted by the store from the authenticated writer identity and immutable after creation (except audited admin migration) — never a marker living in model-editable artifact body/metadata, or the agent can mis-tag human artifacts as agent-created (to curate them) or its own as human (to evade curation). Human-authored, operator-curated, or bundled/shipped artifacts are off-limits unless an opt-in policy re-includes them **scoped by artifact class / principal / workspace / source with per-item exclusion and audit** (not a blanket "all bundled opted in"), and that opt-in needs a suppression list so a re-seed/reinstall does not resurrect what was intentionally archived.
|
|
271
|
+
- **Pinning is a user/admin-authorized, audited, revocable override — subordinate to security/privacy purge.** Pinned items skip every routine auto-transition and any LLM-driven review/consolidation pass, and the agent may still *improve* a pinned item (patch/edit); but `pinned` must not be settable by the model or a poisoned import (or a malicious/unsafe artifact becomes permanently un-cleanable), and a security/privacy tombstone overrides a pin. Explicit deletion of a pinned item requires unpin or elevated confirmation — not absolute refusal, which would make a poisoned pinned item undeletable.
|
|
272
|
+
- **Drive transitions off *meaningful* usage telemetry, under a concurrency check — not a model's guess.** Use a deterministic state machine (active → stale → archived) keyed on use/activity counts and last-activity time with configurable idle windows, but count only genuine user/task use — background recall, preview, indexing, tests, or self-references must not let an artifact keep itself "active." At transition time re-check current state under a lock or compare-and-swap on a version, so a concurrent edit/use is not archived out from under a live session. An LLM review pass may *recommend* within these bounds but is never the authority for destruction; pinned/human-authored items are outside its reach.
|
|
273
|
+
- **Snapshot before a maintenance run, with the archive's obligations.** Keep a pre-run backup and a restore/rollback verb so a bad transition is recoverable — but the snapshot carries the same retention, encryption, redaction, tombstone-propagation, and purge semantics as the archive, or the rollback copy becomes its own leak/resurrection vector. Never let an autonomous pass be the only copy's last writer.
|