@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,448 @@
|
|
|
1
|
+
# Agent Session Persistence (Durable Log, Resume/Fork, Compaction)
|
|
2
|
+
|
|
3
|
+
Implementation companion to the Agent Loop and "Sessions" building block in `retrieval-agent-safety.md`
|
|
4
|
+
and the Context-Editing/Memory notes there. Those say a session must be persistable and resumable and
|
|
5
|
+
that long loops cross a compaction boundary; this reference is *how* to build durable session state for
|
|
6
|
+
a multi-turn agent so it survives crashes, resumes/forks faithfully, and compacts past the context
|
|
7
|
+
window without corrupting history.
|
|
8
|
+
|
|
9
|
+
Use when an agent runs multi-turn conversations that must survive process restarts, be resumed or
|
|
10
|
+
forked later, or run long enough to exceed the model context window. For a single request/response
|
|
11
|
+
call with no persisted state, skip this.
|
|
12
|
+
|
|
13
|
+
Patterns observed in a production reference agent; the underlying append-only-event-log idea is the
|
|
14
|
+
well-established event-sourcing / write-ahead-log shape applied to agent conversations.
|
|
15
|
+
|
|
16
|
+
## 1. The session is an append-only event log, not a mutable blob
|
|
17
|
+
|
|
18
|
+
Persist the conversation as an **append-only log of canonical events** (one record per line, e.g.
|
|
19
|
+
JSONL), written in order as the turn progresses. This log is the *source of truth*; full state is
|
|
20
|
+
reconstructed by replaying it. Benefits that mutable-snapshot persistence loses: crash safety (a
|
|
21
|
+
half-written turn is a truncated tail, not a corrupted document — *under the §2 durability
|
|
22
|
+
preconditions*), faithful resume/fork (replay), and human/tool inspectability (each line is a
|
|
23
|
+
self-contained event you can `grep`/`jq`).
|
|
24
|
+
|
|
25
|
+
The flip side of append-only is unbounded growth: a long session accumulates every pre-compaction
|
|
26
|
+
event forever, and every resume replays all of it. Bound it with **segmented logs plus durable
|
|
27
|
+
compacted checkpoints** (§5): once a compaction checkpoint is written and replay-verified, older
|
|
28
|
+
segments it subsumes can be archived so the live replay set stays bounded.
|
|
29
|
+
|
|
30
|
+
- Give each session a stable id and a creation-time metadata header record (id, created-at, source,
|
|
31
|
+
base instructions, model, fork parent if any) as the first line, so a listing can summarize a
|
|
32
|
+
session by reading only its head.
|
|
33
|
+
- Keep a **separate index** (a small SQLite/DB or derived cache) for listing, search, sort, and
|
|
34
|
+
pagination. The index is derived/disposable; never make it the source of truth. Rebuildable from
|
|
35
|
+
the logs means a corrupt index is recoverable.
|
|
36
|
+
- Store active sessions and archived sessions in distinct locations so listing the active set does
|
|
37
|
+
not scan archives.
|
|
38
|
+
|
|
39
|
+
## 2. Write through a background writer with flush-before-finality and observable failure
|
|
40
|
+
|
|
41
|
+
Appends should not block the turn, but they also must not be silently lost. The crash-safety claim in
|
|
42
|
+
§1 only holds under these durability preconditions — state them, do not assume them:
|
|
43
|
+
|
|
44
|
+
- **One exclusive writer per session** (a lock/lease), so appends cannot interleave from two
|
|
45
|
+
processes into the same file.
|
|
46
|
+
- **Whole-record atomic append** — serialize each event to a complete line and write it in one
|
|
47
|
+
operation; never flush a partial record, so a crash leaves a clean truncated tail, not a spliced
|
|
48
|
+
half-line.
|
|
49
|
+
- **`fsync` (or platform equivalent) before acking a Flush** — an OS crash can lose buffered writes
|
|
50
|
+
the application already "wrote"; durability is only real after fsync.
|
|
51
|
+
- **Monotonic per-event sequence number, and ideally a checksum**, so a truncated/garbled tail is
|
|
52
|
+
detectable on resume and the high-water mark is unambiguous.
|
|
53
|
+
|
|
54
|
+
Use a background writer fed by a queue with explicit control messages:
|
|
55
|
+
|
|
56
|
+
- **Append** (enqueue events), **Flush** (process all prior writes, ack when on disk), **Shutdown**
|
|
57
|
+
(drain + ack), each acknowledged so callers can await durability at the points that matter.
|
|
58
|
+
- **Flush before any finality signal.** Before you tell the user, the model, the SDK/control stream,
|
|
59
|
+
or a transcript consumer that a turn/session completed, flush the log. A "done" that outraces the
|
|
60
|
+
writer can lose the last turn on crash. (This mirrors the background-task finality rule in
|
|
61
|
+
`terminal-cli-dev`: retain final output until consumers have acknowledged it.)
|
|
62
|
+
- **Make writer failure observable.** If the writer task dies (disk full, IO error), record a
|
|
63
|
+
terminal-failure state that every later append/flush call surfaces — never let the recorder keep
|
|
64
|
+
accepting events into the void. A dropped persist is a data-loss bug, not a best-effort log line.
|
|
65
|
+
- Do not return an empty-success on a failed write/flush; raise it. Silent log-and-continue on a
|
|
66
|
+
persistence failure is the data-loss anti-pattern.
|
|
67
|
+
|
|
68
|
+
## 3. A persistence policy decides what is durable, ephemeral, or truncated
|
|
69
|
+
|
|
70
|
+
Not every in-memory event belongs in the durable log. Define an explicit policy:
|
|
71
|
+
|
|
72
|
+
- **Always persist structural markers** the replay depends on: the session-meta header, per-turn
|
|
73
|
+
context records, and **compaction markers** (§5). Without these, a replayed or compacted session
|
|
74
|
+
reconstructs wrong.
|
|
75
|
+
- **Persist canonical conversation items** (user/assistant messages, tool calls + outputs) needed to
|
|
76
|
+
rebuild model context.
|
|
77
|
+
- **Classify volatile UI/telemetry events as ephemeral** — progress ticks, spinners, and status
|
|
78
|
+
updates do not belong in the durable transcript.
|
|
79
|
+
- **Bound payloads before persisting — but persist what the model actually saw.** Capping/middle-
|
|
80
|
+
truncating large tool output keeps one noisy command from bloating the file, *but truncation that
|
|
81
|
+
diverges from the model-visible context breaks faithful replay* (replay would reconstruct a
|
|
82
|
+
different context than the original run). Reconcile by either (a) applying the same truncation to
|
|
83
|
+
the model input, so the persisted form *is* what the model saw; or (b) storing the full payload
|
|
84
|
+
content-addressed out-of-line and logging a deterministic truncation artifact applied identically
|
|
85
|
+
at original run and replay. Do not promise faithful replay while silently persisting less than the
|
|
86
|
+
model consumed. Sanitize/redact at persistence time as well as display time.
|
|
87
|
+
- Support more than one persistence mode (e.g. a lean default vs an extended/debug mode that keeps
|
|
88
|
+
larger payloads) so verbosity is a policy choice, not hardcoded.
|
|
89
|
+
- **Model-visible ⟹ accounted-for.** Every item in the client-dispatched envelope must carry
|
|
90
|
+
exactly one durable accounting classification (the sealed envelope defined below; the
|
|
91
|
+
provider-effective context is the separate, conditional surface at the end of this rule).
|
|
92
|
+
The policy above decides what is durable; this invariant decides what is *explainable
|
|
93
|
+
afterwards* — user/assistant messages, tool outputs, injected context, and resolved
|
|
94
|
+
instruction surfaces all count. The classes:
|
|
95
|
+
- **Reconstructable (raw)** — the persisted content is byte-equivalent to its item in the
|
|
96
|
+
sealed client-dispatched envelope and lives in the session log itself (per the truncation
|
|
97
|
+
rule above, the client dispatched the same truncated form that was persisted; what the
|
|
98
|
+
provider did after that is the provider-effective surface at the end of this rule). A payload stored out-of-line classifies by
|
|
99
|
+
reference below — never raw — so the availability and authorization criteria apply to it.
|
|
100
|
+
An item transformed by persistence-time redaction does not classify raw — classify it
|
|
101
|
+
non-reconstructable, with the redacted derivative recorded as the marker's metadata rather
|
|
102
|
+
than as the item.
|
|
103
|
+
- **Reconstructable (by reference)** — the log carries an immutable, versioned reference
|
|
104
|
+
(an opaque pinned id or version; for content-derived ids see the digest rule below)
|
|
105
|
+
plus a digest, and the referenced store keeps the item
|
|
106
|
+
resolvable for the session log's whole retention horizon, with access no broader than
|
|
107
|
+
the log's policy while the authorized replay principal keeps access. "Stricter policy" is
|
|
108
|
+
not the test: a store that purges earlier than the log, or denies the replay principal,
|
|
109
|
+
fails it — availability and authorization are what make the promise true.
|
|
110
|
+
A mutable reference target does not qualify: replay would resolve different or missing
|
|
111
|
+
content, turning "reconstructable" into a false promise — classify such an item
|
|
112
|
+
non-reconstructable instead.
|
|
113
|
+
- **Non-reconstructable** — an explicit marker carrying the reason (policy forbids persistence,
|
|
114
|
+
the payload was ephemeral, the source lives behind stricter access control) plus either a
|
|
115
|
+
keyed digest or an explicit no-digest note.
|
|
116
|
+
- **The accounting invariant audits records; it must never force raw persistence.** Assertions
|
|
117
|
+
over a session log check completeness (no envelope item without a classification) and
|
|
118
|
+
validity (by-reference targets immutable and policy-aligned) — never "everything model-visible
|
|
119
|
+
is persisted raw"; that inversion is how an accounting rule becomes a credential-persistence
|
|
120
|
+
bug. Completeness is only as real as the record it audits: assign stable per-item ids at
|
|
121
|
+
context assembly and durably commit each item's complete accounting record — the id, the
|
|
122
|
+
classification, and that classification's evidence (the raw content itself, the validated
|
|
123
|
+
pinned reference plus digest, or the full non-reconstructable marker) — before model
|
|
124
|
+
dispatch, failing closed if that commit fails; a retry reuses the ids so a replayed
|
|
125
|
+
dispatch deduplicates rather than double-classifies. The denominator must be authoritative
|
|
126
|
+
too: derive one atomic, invocation-scoped manifest from the finalized dispatch payload
|
|
127
|
+
itself — the ordered item ids and boundaries — and commit it with the records, so an audit
|
|
128
|
+
checks the log against the invocation's own manifest rather than against whatever subset of
|
|
129
|
+
records happened to land. Seal before you account: freeze the dispatch payload into an
|
|
130
|
+
immutable envelope, derive the manifest and records from that sealed envelope, and let
|
|
131
|
+
transport and retries send only the sealed envelope — a payload middleware can still mutate
|
|
132
|
+
between commit and send re-opens the window (the same check-then-act closure the §4 config
|
|
133
|
+
lock pins with a generation). Account the attempt, not only the content: record durable
|
|
134
|
+
attempt states around the sealed envelope — prepared, dispatch-attempted, then accepted or
|
|
135
|
+
delivery-uncertain — plus the provider request/idempotency key; the durable
|
|
136
|
+
dispatch-attempted state (unique attempt id plus that key) commits before transport is
|
|
137
|
+
invoked, failing closed like the item records, and after transport the state moves only to
|
|
138
|
+
accepted, delivery-uncertain, or rejected — the last a provider-attested definitive rejection
|
|
139
|
+
before model execution, recording that no invocation occurred; a corrected resend after it is
|
|
140
|
+
a new sealed invocation with its own envelope and key, since an idempotency key may only ever
|
|
141
|
+
cover one identical payload — so a retry that may have
|
|
142
|
+
invoked the model twice shows as two attempts even while item accounting deduplicates.
|
|
143
|
+
Recovery treats a stale dispatch-attempted record as delivery-uncertain — a crash just after
|
|
144
|
+
the commit and a crash after provider acceptance leave the same record — reconciling by
|
|
145
|
+
provider request id where the provider supports it, and auto-retrying only under
|
|
146
|
+
provider-guaranteed idempotency with the invocation's original key and the identical sealed
|
|
147
|
+
envelope — a retry that mints a fresh key is a second invocation, not a retry; otherwise the
|
|
148
|
+
uncertainty is surfaced, not retried through. A stale prepared record — committed but never
|
|
149
|
+
dispatch-attempted, so transport cannot have run — is recovered explicitly too: either cancel
|
|
150
|
+
it into a typed terminal state, its committed evidence following the normal retention or
|
|
151
|
+
erasure policy, or resume by committing dispatch-attempted and sending the identical sealed
|
|
152
|
+
envelope under the original key; left prepared forever it surfaces nothing and strands
|
|
153
|
+
committed evidence with no invocation to explain it.
|
|
154
|
+
Version the accounting schema and apply it prospectively: an invocation recorded before the
|
|
155
|
+
accounting existed carries a typed legacy marker (the non-reconstructable family, with
|
|
156
|
+
pre-accounting as the reason) — never synthesized classifications — the same rule §4 applies
|
|
157
|
+
to sessions recorded before the config lock existed. The guarantee is honest about its edge:
|
|
158
|
+
it is scoped to what the client dispatched. A provider can inject, truncate, or compact
|
|
159
|
+
server-side, so the accounting claims the sealed envelope, not the provider's effective
|
|
160
|
+
context — where authoritative provider evidence of the effective context exists, record it;
|
|
161
|
+
where it does not, the invocation carries a typed model-context-unverifiable marker rather
|
|
162
|
+
than an implied full-fidelity claim. A crash between dispatch and append
|
|
163
|
+
otherwise leaves items whose classification landed but whose evidence never did, and a
|
|
164
|
+
log-only audit sees neither gap.
|
|
165
|
+
Credentials and secrets never reach this accounting as content, because they are never
|
|
166
|
+
model-visible raw (resolve them by reference at the boundary — `agent-credentials-auth.md`).
|
|
167
|
+
A secret detected in the sealed envelope before dispatch aborts the transport and records a
|
|
168
|
+
rejected-exposure event, itself under the same discipline as every exposure record (never
|
|
169
|
+
the value, never a plain digest); accounting for a known exposure never licenses sending it.
|
|
170
|
+
The scan
|
|
171
|
+
runs before accounting evidence is derived or committed and fails closed itself: a scanner
|
|
172
|
+
error, timeout, or absence never reads as no detection — the dispatch waits or aborts; where
|
|
173
|
+
any persistence preceded
|
|
174
|
+
detection, the late-discovery transition below applies to the aborted dispatch as well. If a
|
|
175
|
+
secret is discovered only after it reached model context, classify that item
|
|
176
|
+
non-reconstructable with an explicit no-digest note — never raw, never by reference — and
|
|
177
|
+
attach the exposure as that marker's metadata: the accounting records a typed exposure event
|
|
178
|
+
(class, source, span) — never the value, and never a plain digest of it. Late discovery is a
|
|
179
|
+
transition, not a label, and it covers every class that persisted content: whether the item
|
|
180
|
+
was raw in the log or reachable through a by-reference target, supersede the classification,
|
|
181
|
+
contain read access to the affected records and the referenced target at once, and purge or
|
|
182
|
+
cryptographically erase the persisted or referenced content, its replicas, and any digest or
|
|
183
|
+
content-derived identifier stored for it, where the store supports it —
|
|
184
|
+
an append-only log does this as a supersession event plus erasure, never a silent rewrite —
|
|
185
|
+
recording any residue that could not be erased as part of the exposure event. A digest is itself a
|
|
186
|
+
disclosure channel: a plain content hash of an enumerable value is reversible by dictionary,
|
|
187
|
+
so a plain digest is allowed only where the same record already persists the content raw
|
|
188
|
+
(pure integrity use). A content-derived reference identifier is a digest under this rule, so
|
|
189
|
+
a by-reference record identifies its target by an opaque pinned id or version, or a keyed
|
|
190
|
+
derivation — never a plain content hash of the referenced content. Where the digest is the
|
|
191
|
+
only residue — the by-reference and
|
|
192
|
+
non-reconstructable classes — use a keyed digest with a non-secret key-id and algorithm-id,
|
|
193
|
+
verified against a retained keyring, rotation handled as `migration-required` (the same
|
|
194
|
+
discipline the §4 config lock specifies for sensitive-but-behavior-affecting fields).
|
|
195
|
+
|
|
196
|
+
## 4. Resume and fork: replay the log, and restore the accounting too
|
|
197
|
+
|
|
198
|
+
Model the initial state of a new agent run as an explicit enum, not an implicit default:
|
|
199
|
+
|
|
200
|
+
- **New** — empty history.
|
|
201
|
+
- **Cleared** — history intentionally reset. Because the log is append-only, a reset is *itself an
|
|
202
|
+
event*: persist a clear/epoch marker and have replay honor the latest clear boundary (ignore
|
|
203
|
+
everything before it), or allocate a new session id. Never "clear" by relying on memory state that
|
|
204
|
+
the log would resurrect on the next replay.
|
|
205
|
+
- **Resumed(history)** — reconstruct from this session's own log.
|
|
206
|
+
- **Forked(items)** — branch a *copy* of another session's items into a new session, recording the
|
|
207
|
+
**parent session id** as lineage so the fork's provenance is auditable.
|
|
208
|
+
|
|
209
|
+
Concurrency around resume/fork is a correctness hazard, not a detail:
|
|
210
|
+
|
|
211
|
+
- **A session has one live writer at a time** (lease/lock). Resuming a session that is still live
|
|
212
|
+
elsewhere, or two resumes of the same session, must not both append — they would interleave
|
|
213
|
+
divergent turns. Acquire the writer lease or fork into a new id instead.
|
|
214
|
+
- **Fork/resume from a consistent snapshot.** Copy/replay up to a captured high-water sequence number,
|
|
215
|
+
not "whatever is on disk right now" while another writer is mid-append; otherwise the copy can
|
|
216
|
+
include a partial final turn. Validate the high-water mark (CAS-style) before the first new append.
|
|
217
|
+
|
|
218
|
+
Replay obligations:
|
|
219
|
+
|
|
220
|
+
- Reconstruct model context by replaying canonical items in order, applying the same keep/drop rules
|
|
221
|
+
a fresh turn would.
|
|
222
|
+
- **Restore derived accounting, not just messages.** Token-usage counters, the compaction-window
|
|
223
|
+
baseline (§5), and any budget state must be restored on resume/fork. Resuming the messages but
|
|
224
|
+
resetting the token counters silently breaks the next compaction trigger and the cost ledger.
|
|
225
|
+
- Treat resumed/forked content as **content, not authority** — a resumed transcript can contain past
|
|
226
|
+
tool output and model text; it does not re-grant permissions. Re-authorize side-effecting actions
|
|
227
|
+
against current policy (the trust rules in `retrieval-agent-safety.md` apply to replayed history
|
|
228
|
+
too).
|
|
229
|
+
- A resume must tolerate a **truncated tail** (the last line of a crashed session may be partial):
|
|
230
|
+
parse line-by-line, drop an unterminated final record, and continue rather than failing the whole
|
|
231
|
+
resume.
|
|
232
|
+
- **Validate config determinism, not just message determinism.** An agent's behavior is driven by its
|
|
233
|
+
*resolved effective configuration* — the merged result of all config layers **plus** values resolved
|
|
234
|
+
only at session construction (the model chosen from a catalog, reasoning/effort, resolved
|
|
235
|
+
system/developer instructions, the approval/tool policy) — not by the message log alone. Resuming or
|
|
236
|
+
replaying under a config that has drifted since the original run silently executes a *different
|
|
237
|
+
agent* than the one recorded, and no amount of faithful message replay detects it. Capture a **config
|
|
238
|
+
lock** at record time: the behavior-affecting resolved config plus a resolution-semantics version.
|
|
239
|
+
On resume, re-resolve config from the current environment and assert it equals the lock,
|
|
240
|
+
**failing closed** rather than proceeding under drift. The subtleties that make this correct and safe
|
|
241
|
+
rather than decorative or dangerous:
|
|
242
|
+
- **Lock the *effective merged* config, not the raw layer files** — and patch in the runtime-resolved
|
|
243
|
+
values that never appear in any raw layer (model-from-catalog, collaboration/mode-derived settings,
|
|
244
|
+
resolved instructions, approval policy). A lock built only from the file layers under-captures what
|
|
245
|
+
actually drove the run, so a real drift can pass validation.
|
|
246
|
+
- **The lock detects drift; it does not restore authority.** This is fidelity checking, not a trust
|
|
247
|
+
boundary — it does not contradict "resumed history is content, not authority" above. A locked
|
|
248
|
+
approval/tool policy that differs on resume is *drift to surface and fail closed on*, never an
|
|
249
|
+
instruction to reinstate the recorded policy or bypass current enforcement. Side-effecting actions
|
|
250
|
+
still re-authorize against the *current* policy (per `retrieval-agent-safety.md`); the lock only
|
|
251
|
+
answers "is this the same agent configuration the recorded run executed under?".
|
|
252
|
+
- **The lock applies to *resume*, not uniformly to replay and fork** (the §4 state enum). *Resume*
|
|
253
|
+
continues the same agent → validate continuity (this rule). *Replay* for diagnosis runs read-only
|
|
254
|
+
against the *recorded* config-as-evidence and must not require equality with the live environment.
|
|
255
|
+
*Fork* intentionally starts a new session that may adopt a new model/tool/policy → it records a
|
|
256
|
+
*fresh* lock plus parent lineage, not an equality check against the parent's lock. Applying the
|
|
257
|
+
resume gate to replay or fork either blocks valid operations or pushes operators toward a blanket
|
|
258
|
+
override.
|
|
259
|
+
- **Lock canonicalized, behavior-affecting values only — and treat the lock and its diff as
|
|
260
|
+
disclosure-sensitive.** A raw effective config carries secrets/tokens, env-derived ephemerals,
|
|
261
|
+
absolute paths, timestamps, and availability-probe results; persisting or comparing those leaks data
|
|
262
|
+
(§3 / R10 sanitization) and manufactures false drift. But "non-secret" is not enough: resolved
|
|
263
|
+
*instructions*, tool manifests, policy text, internal endpoints, and tenant/router identifiers are
|
|
264
|
+
behavior-affecting yet still sensitive. Lock such fields by **stable id + keyed digest**, not raw
|
|
265
|
+
value, and surface drift as *which fields changed* by default; expose value-level diffs only to a
|
|
266
|
+
privileged operator. The error a normal user sees must not become an exfiltration channel for the
|
|
267
|
+
hidden prompt/policy surface the lock is meant to protect. The digest must record a **non-secret
|
|
268
|
+
key-id and algorithm-id**, and verification must run against a *retained keyring* for the session
|
|
269
|
+
retention window — otherwise a key rotation makes every prior session falsely drift (then someone
|
|
270
|
+
"fixes" it by disabling sensitive-field comparison, reopening the hole). A missing/retired digest
|
|
271
|
+
key is a `migration-required` case (below), never silently equality, inequality, or a global
|
|
272
|
+
bypass; rotation produces a new lock generation or a typed migration record, never a demand to
|
|
273
|
+
re-expose the protected raw value.
|
|
274
|
+
- **Canonicalization must be one specified scheme, not "canonicalize" hand-waved.** Two resolvers that
|
|
275
|
+
disagree on key ordering, default elision, path/float/string normalization, env expansion, or
|
|
276
|
+
redaction placeholders will either lock users out (false drift) or compare equal after dropping a
|
|
277
|
+
behavior-affecting distinction (missed drift). Pin a single canonical schema with field-level
|
|
278
|
+
equality rules and golden test vectors; the lock is only as trustworthy as that scheme is
|
|
279
|
+
deterministic across versions.
|
|
280
|
+
- **Strip the lock's own control knobs before comparing.** The settings that enable/locate the lock
|
|
281
|
+
are not part of the locked surface; if you compare them too, the lock diverges on its own
|
|
282
|
+
configuration (self-reference) and every resume fails spuriously.
|
|
283
|
+
- **Classify drift; do not collapse it to one coarse override.** Fail-closed-with-a-single-bypass-flag
|
|
284
|
+
is a footgun: the same flag that waves through an unsafe silent change also blocks (or normalizes
|
|
285
|
+
bypassing) *required* changes — a deprecated model removed, a rotated endpoint, a tightened safety
|
|
286
|
+
limit, a schema migration. Distinguish drift classes (compatible / safety-tightening /
|
|
287
|
+
safety-loosening / unavailable-deprecated / migration-required) and require a *typed* migration or
|
|
288
|
+
acceptance per class, so accepting a forced upgrade never silently also accepts a behavior-loosening
|
|
289
|
+
drift. Relatedly, when a locked value was resolved from a mutable catalog / feature-flag service /
|
|
290
|
+
remote default, current resolution may no longer be able to reproduce it: lock stable artifact
|
|
291
|
+
*identities and resolver inputs* (so the lock stays interpretable), and treat an unreproducible value
|
|
292
|
+
as a migration-required case to record explicitly — never a silent pass. A migration/acceptance is
|
|
293
|
+
itself a durable, auditable record that yields a *new* lock generation, not an in-memory "operator
|
|
294
|
+
clicked OK".
|
|
295
|
+
- **Version the lock on resolution semantics, not raw build, and fail on mismatch by default** with an
|
|
296
|
+
explicit, *typed* operator acceptance (not a global ignore-all). The durable invariant is the config
|
|
297
|
+
resolver/schema/catalog-semantics version — a routine build/patch bump that does not change
|
|
298
|
+
resolution semantics should not hard-fail an otherwise-identical resume (record raw build as audit
|
|
299
|
+
metadata, not as the gate); but bump the semantics version whenever resolution can differ even when
|
|
300
|
+
the serialized config looks identical.
|
|
301
|
+
- **Scope one lock per config-authority boundary, normally the root session.** A child/sub-agent that
|
|
302
|
+
truly inherits the parent's already-resolved config references the parent lock rather than
|
|
303
|
+
re-locking (re-locking inherited config validates against the wrong baseline); a sub-agent launched
|
|
304
|
+
with its *own* distinct model/tool/instruction scope is its own boundary and locks that.
|
|
305
|
+
- **Pin the validated config as the turn's authority to close the check-then-act window.** "Re-resolve,
|
|
306
|
+
compare, proceed" leaves a TOCTOU gap: config can change after validation but before a side effect,
|
|
307
|
+
so the resumed turn acts under a config neither validated nor current. Snapshot the validated
|
|
308
|
+
resolution as a generation/lease that is the turn's runtime authority, and re-check it (CAS-style,
|
|
309
|
+
like the high-water mark above) — together with current policy — before each side-effecting action.
|
|
310
|
+
- **A session with no lock is not silently resumable.** Sessions recorded before locking existed (or
|
|
311
|
+
with the lock disabled) have no baseline to validate against; default them to `migration-required`
|
|
312
|
+
or `replay-only`, never "resume as if validated". And log every lock outcome — *including denials
|
|
313
|
+
and migration rejections*, not only acceptances — or the audit trail only shows the resumes that
|
|
314
|
+
succeeded.
|
|
315
|
+
This is the configuration analogue of "restore derived accounting" above: replay fidelity requires
|
|
316
|
+
the same *inputs*, not just the same *history*.
|
|
317
|
+
|
|
318
|
+
## 5. Compaction: summarize past the context window without corrupting history
|
|
319
|
+
|
|
320
|
+
When a session's estimated context approaches the model window, compact it.
|
|
321
|
+
|
|
322
|
+
- **Trigger on a token-budget watermark measured from the last compaction.** Track a per-window
|
|
323
|
+
baseline and a window ordinal so "how much have we grown" is measured since the previous compaction,
|
|
324
|
+
not from zero. **Prefer server-reported token usage over local estimation** when the provider
|
|
325
|
+
returns it; estimation is the fallback that drives the trigger when no server count is available
|
|
326
|
+
yet.
|
|
327
|
+
- **Two strategies, chosen by provider capability:** *local/inline* compaction (you send the history
|
|
328
|
+
to the model with a dedicated summarization prompt and replace it with the returned summary) or
|
|
329
|
+
*provider-remote* compaction (the provider compacts server-side). Pick per provider; do not assume
|
|
330
|
+
one is always available.
|
|
331
|
+
- **Record a self-sufficient compaction marker in the log** so replay is deterministic. The marker
|
|
332
|
+
must carry the summary text itself, the covered range / window ordinal, and ideally a summary hash
|
|
333
|
+
— not just "a boundary happened". Without the summary in the log, replay must either re-summarize
|
|
334
|
+
(nondeterministic) or re-expand the dropped items (defeats compaction). This marker is what later
|
|
335
|
+
segments can be archived behind (§1).
|
|
336
|
+
- **Store the summary as a typed synthetic event, not a text prefix.** A stable prefix string is not
|
|
337
|
+
a trust boundary — a compactor can emit text that mimics user instructions or role labels. Give the
|
|
338
|
+
summary a non-user role/source on its event, escape embedded role-like text, and make replay
|
|
339
|
+
serialize it so it can never become a user message or carry authority (the "history is content, not
|
|
340
|
+
authority" rule applies in full).
|
|
341
|
+
- **Keep/drop rules decide what survives, and the kept set must shrink.** Keep: the recent
|
|
342
|
+
conversational tail (the last user/assistant turns), the compaction summary itself, and still-
|
|
343
|
+
authoritative system/hook prompts. Drop or subsume into the summary: older user/assistant turns the
|
|
344
|
+
summary now covers, instruction/developer wrappers, session-prefix scaffolding, and stale
|
|
345
|
+
tool-call / function-output / reasoning items. Keeping *every* user and assistant message across
|
|
346
|
+
compaction re-bloats the window and duplicates what the summary already says — compaction must
|
|
347
|
+
actually reduce the kept set, not just relabel it.
|
|
348
|
+
- **Re-filter provider-produced compaction output.** A remote compactor can echo stale or duplicated
|
|
349
|
+
instruction content; run the same keep/drop filter over its output before trusting it.
|
|
350
|
+
- **Re-inject durable initial context at a deterministic position** relative to the summary (the
|
|
351
|
+
fixed system/tool context must survive compaction). Be explicit and consistent about whether fresh
|
|
352
|
+
context goes before or after the summary and the last user message; an inconsistent injection point
|
|
353
|
+
produces subtly different model behavior across compaction paths.
|
|
354
|
+
- **Fallback when even the summary plus recent turns do not fit:** trim the oldest/largest tool-call
|
|
355
|
+
and tool-output records to fit the window, preserving the conversational messages. Trimming bulky
|
|
356
|
+
tool output is less damaging than dropping user/assistant turns.
|
|
357
|
+
|
|
358
|
+
## Non-negotiables
|
|
359
|
+
|
|
360
|
+
- The append-only log is the source of truth; any index/cache is derived and rebuildable.
|
|
361
|
+
- Crash-safety requires the §2 preconditions: one exclusive writer per session, whole-record atomic
|
|
362
|
+
append, `fsync` before acking Flush, and a monotonic sequence number.
|
|
363
|
+
- Flush the log before signaling turn/session finality; never let a completion signal outrace the
|
|
364
|
+
writer.
|
|
365
|
+
- A failed persist/flush is raised and made observable, never swallowed as empty success.
|
|
366
|
+
- Always persist the structural markers (session meta, turn context, compaction) that replay needs.
|
|
367
|
+
- Truncating a persisted payload is allowed only if it matches what the model saw (or the full
|
|
368
|
+
payload is stored out-of-line); never claim faithful replay while persisting less than the model
|
|
369
|
+
consumed.
|
|
370
|
+
- A "clear" is a persisted epoch marker (or a new session id), never an in-memory reset the log
|
|
371
|
+
would resurrect.
|
|
372
|
+
- One live writer per session; resume/fork copies from a validated high-water snapshot, not a
|
|
373
|
+
concurrently-appended file.
|
|
374
|
+
- Resume/fork restores token-usage and compaction-window accounting, not just messages; forks record
|
|
375
|
+
parent lineage; replay tolerates a truncated final record.
|
|
376
|
+
- **Resume** validates a **config lock** and fails closed on drift (replay runs read-only against
|
|
377
|
+
recorded config; fork records a fresh lock + lineage). The lock captures canonicalized
|
|
378
|
+
behavior-affecting values including runtime-resolved ones (not just raw layers) under one specified
|
|
379
|
+
canonicalization scheme; sensitive-but-behavior-affecting fields (instructions, policy text,
|
|
380
|
+
endpoints, identifiers) are locked by id+keyed-digest and drift surfaces as which-fields-changed,
|
|
381
|
+
value diffs operator-only — the resume error is not an exfiltration channel. The lock detects drift
|
|
382
|
+
without restoring authority (current policy still enforces), strips its own control knobs, gates on a
|
|
383
|
+
resolution-semantics version (not raw build), classifies drift into typed migration/acceptance
|
|
384
|
+
classes (never one coarse bypass), is scoped per config-authority boundary (normally root session),
|
|
385
|
+
and is pinned as the turn's authority + re-checked (CAS) before side effects to close the
|
|
386
|
+
check-then-act window.
|
|
387
|
+
- Replayed/resumed history is untrusted content and does not re-grant permissions.
|
|
388
|
+
- The compaction marker carries the summary, covered range, and window ordinal so replay is
|
|
389
|
+
deterministic; the summary is a typed non-user event that can never become user input or authority;
|
|
390
|
+
compaction must shrink the kept set, and bounded growth needs segmented logs + durable checkpoints.
|
|
391
|
+
- A compaction summary is marked as a summary, recorded as a log marker, and produced/accepted only
|
|
392
|
+
after the keep/drop filter; durable system/tool context is re-injected at a deterministic position.
|
|
393
|
+
- Every item in the client-dispatched envelope is accounted for as reconstructable-raw, reconstructable by immutable
|
|
394
|
+
reference (digest + policy-aligned store), or explicitly non-reconstructable with reason;
|
|
395
|
+
accounting assertions check completeness and classification, never force raw persistence; secrets
|
|
396
|
+
stay reference-resolved — a leaked secret classifies non-reconstructable with an explicit
|
|
397
|
+
no-digest note and a typed exposure event as metadata — and a digest that is the only
|
|
398
|
+
residue of an item is keyed, never plain.
|
|
399
|
+
|
|
400
|
+
## Routing
|
|
401
|
+
|
|
402
|
+
- The Agent Loop bounds (max turns/tokens/time), tool-result re-entry, and "history is not authority"
|
|
403
|
+
rule live in `retrieval-agent-safety.md` — this reference is the persistence/compaction layer
|
|
404
|
+
beneath them.
|
|
405
|
+
- Background-writer finality and flush-before-completion as a *terminal-UI task* concern →
|
|
406
|
+
`terminal-cli-dev` (this reference covers the session-log durability concern; keep them aligned).
|
|
407
|
+
- Durable session metrics, session-index health, and compaction-rate signals → `platform-observability`.
|
|
408
|
+
- Replaying a session log to reproduce a bug or a bad turn → `defect-diagnosis`.
|
|
409
|
+
- Rollout/migration of a session-file format change or a default-compaction-policy change →
|
|
410
|
+
`platform-release-engineering`.
|
|
411
|
+
- Generic relational-store/index durability mechanics (if the index grows into a real service DB) →
|
|
412
|
+
`go-microservice-architecture` / `python-service-architecture`; the agent-session semantics stay here.
|
|
413
|
+
|
|
414
|
+
## Remote or externally controlled agent sessions
|
|
415
|
+
|
|
416
|
+
For remote or externally controlled agent sessions, keep session/worker credentials scoped to the transport instance, not process-wide environment or shared client globals that untrusted or user-configured tools can read. Account switch, logout, or re-enrollment must clear stale credential caches before any new control channel can send requests.
|
|
417
|
+
|
|
418
|
+
## Runtime workspace-scope changes
|
|
419
|
+
|
|
420
|
+
Treat runtime workspace-scope changes as permission-boundary transitions, not UI preferences. Adding, removing, or persisting working directories must validate a canonical directory identity before it can affect tools: expanded path, platform-normalized path form, stable filesystem identity or realpath-equivalent where available, existence, directory type, accessibility class, root/parent/child/sibling relationship to current working roots, source scope, session versus persisted lifetime, principal/session/workspace identity, policy version, root-set generation, and approval request id when user-mediated. Serialize root-set transitions or use compare-and-swap generation fencing so memory state, persisted settings, approval caches, and sandbox allowlists cannot commit on different generations; revalidate the directory identity before persistence, sandbox refresh, and first use, and fail closed if it changed. A narrower or duplicate child root must not widen scope; any sibling, unrelated, broad home/drive/root, or broader parent root that expands reachable resources needs explicit approval and policy allowance naming the widened resource set. Every root-set change must invalidate cached allow decisions, planned tool invocations, permission suggestions, file/source caches, prompt-visible file context, and sandbox allowlists keyed to the old root set. Scope shrink or removal must also make stale reads, writes, shell commands, late callbacks, resumed sessions, and queued filesystem-capable actions re-authorize against the new root set or fail closed. Persisted-scope writes need clear success, failure, rollback, or partial-finality semantics so a runtime cannot report durable access that exists only in memory. Refresh sandbox configuration synchronously before the next filesystem-capable command after any root-set change, and treat refresh failure or stale config as permission uncertainty rather than allow. Diagnostics may expose bounded categories and counts, but not raw local paths, sensitive project structure, denied path values, or full command contents; route sink policy to `platform-observability`.
|
|
421
|
+
|
|
422
|
+
## Persisted settings/config migrations
|
|
423
|
+
|
|
424
|
+
When persisted agent/runtime settings migrations change model/runtime choices, permission modes, tool approvals, tool-source scope, or default safety behavior, treat the migration as a runtime policy change: invalidate prompt/tool caches keyed by old settings, recompute model-visible tool schemas, require fresh execution-time authorization, preserve explicit deny/revocation and narrower scopes, and replay representative allow/deny/resume/dynamic-tool-change traces after migration.
|
|
425
|
+
|
|
426
|
+
## Session discovery, resume, and fork
|
|
427
|
+
|
|
428
|
+
Treat session discovery, resume, and fork as provenance-boundary transitions, not log browsing or convenience startup. A resumable session must be selected and reopened only after binding the candidate to an exact tuple: principal, account, tenant, organization, or explicit absent-scope markers; workspace or repository identity; canonical working root; branch or worktree identity when present; privacy/data-residency state; session id; transcript artifact identity plus content digest, signed or manifested transcript generation, or monotonic durable append/high-watermark identity; current session incarnation; policy and permission generation; tool/capability generation; prompt/model generation; and source trust scope. Search text, custom names, summaries, tags, branch labels, project paths, modified times, and indexes are discovery hints, not authority; discovery indexes and results themselves must be scope-authorized and redacted before model or UI exposure, and cross-workspace discovery may expose only sanitized existence or counts until an explicit directory/session switch is authorized and revalidates the tuple. Ambiguous matches, stale metadata, missing transcript proof, auxiliary/background transcripts, and current-session self-matches must be suppressed or fail closed; cross-workspace candidates require an explicit switch and tuple revalidation before model-visible context or tools are restored. Resume must open a stable immutable snapshot or locked generation across candidate selection, transcript open, rehydration, and fork-copy preparation; revalidate transcript identity and high-watermark immediately before restoring context/tools or copying a fork prefix; and reject concurrent append, delete, rename, compaction, or partial-copy drift. Resume must clear or revalidate stale file, skill, memory, prompt, approval, session-message, tool, capability, tool-server, connector, and settings-derived caches before rehydration; restore cost, content-replacement, attribution, worktree, task, and metadata state only when the stored tuple still matches or an explicit migration policy says which fields may carry forward.
|
|
429
|
+
|
|
430
|
+
## Forked session incarnation and boundaries
|
|
431
|
+
|
|
432
|
+
Forked sessions need a new session incarnation and parent-child boundary. Copy only the authorized per-message conversation prefix through a verified fork point after checking each message, attachment, replacement record, summary, and source-scope provenance label; summaries that merged differently scoped parent sources must be rejected or replaced with typed redacted markers. Preserve ordering and tool-use/tool-result pairing, remap durable message ids, record parent session and fork-point provenance, and reject fork points outside the selected transcript chain or stable snapshot. Copied-prefix effect and finality records must be preserved as immutable parent provenance and no-reexecute barriers; committed or unknown effects must block automatic retry in the child until reconciled. Do not inherit undo history, removable worktree ownership, pending approvals, permission bypasses, live background tasks, remote-control credentials, prompt/tool caches, or usage counters unless each item is explicitly rebound to the child tuple or intentionally omitted with degraded finality. Parent and child transcripts, cost/accounting, cached approvals, file-history state, replacement records, memory writes, side-effect ledgers, usage counters, and diagnostics must stay distinguishable so a child cannot mutate, delete, share, rerun, or bill against the parent by accident. Diagnostics may expose bounded categories, counts, and sanitized reason codes, but not raw prompts, local paths, branch names, transcript contents, session ids, credentials, or free-form metadata.
|
|
433
|
+
|
|
434
|
+
## History and transcript synchronization
|
|
435
|
+
|
|
436
|
+
History or transcript synchronization must preserve ordering across initial replay, live writes, echoes, reconnect, and server-side replay. Use durable message ids, monotonic sequence or cursor state, ack/high-watermark advancement only after durable write, bounded deduplication, flush gates, explicit gap detection, and fail-closed stop/resync behavior when replay or ordering is ambiguous.
|
|
437
|
+
|
|
438
|
+
## SDK/headless/remote protocol streams
|
|
439
|
+
|
|
440
|
+
SDK, headless, or remote-agent protocol streams are runtime control planes, not plain logs. Define a versioned frame envelope, discriminated message types, one-message-per-frame serialization rules, safe line/framing escaping, schema validation for every inbound control and data frame, maximum frame/queue sizes, unknown-type behavior, and parse-error finality. Outbound control requests need stable request ids, cancellation frames, one writer or ordered outbound queue, pending-request cleanup when input closes, duplicate or orphan response suppression, and response binding to the pending request, tool/action id, session/transport incarnation, policy/capability version, and normalized payload digest. Streamed deltas must either be reconstructable from durable prior state or emitted as self-contained snapshots; retries, reconnects, and late completions must not duplicate mutable messages, lose terminal results, or re-open a completed authorization/action path.
|
|
441
|
+
|
|
442
|
+
## Protocol-to-transcript adapters
|
|
443
|
+
|
|
444
|
+
Remote/headless protocol-to-transcript adapters are model-visible finality boundaries, not display glue. For each entrypoint mode, define which protocol messages become assistant, user, system, stream, permission, progress, history, or status-only local state; bind conversion to session/incarnation, transport generation, history cursor or live-stream generation, message id or bounded dedupe key, tool-use id where present, and viewer versus actor role. Live user-message echoes must be deduplicated without hiding historical user messages; remote tool-result messages must clear in-progress tool state even when user messages are otherwise not rendered; task, progress, compaction, and heartbeat/status signals must update counters, loading, timeout, and stale-spinner state without polluting the model-visible transcript. Product-visible status requires either a bounded typed marker outside the model-visible transcript or a lower-precedence redacted meta/status record with no raw protocol payload. Result messages need separated terminal finality and display policy: success may be status-only, but errors and unknown finality need visible degraded evidence. History pagination and replay must preserve scroll/anchor or cursor position, suppress duplicate init/setup records, cap fill loops when many protocol events convert to no visible message, and treat failed pages as retryable degraded state rather than end-of-history truth. Connection gaps, reconnect, direct-connect, remote-shell, viewer-only, and live actor modes need explicit state reset or reconciliation for pending permissions, streaming fragments, in-progress tools, background task counters, response timers, and title/suggestion side effects; diagnostics may expose bounded categories and counts, not raw messages, tool names, session ids, transport endpoints, command labels, stderr, prompt text, payload bodies, credentials, or free-form remote errors.
|
|
445
|
+
|
|
446
|
+
## Machine-readable stdout purity
|
|
447
|
+
|
|
448
|
+
When a CLI, SDK, or headless runtime declares stdout as a machine-readable protocol channel, treat stdout/stderr separation as part of the protocol contract. Install any stdout purity guard before the first structured write; allow only complete structured frames or tolerated blank separators on stdout; divert human text, debug prints, dependency banners, setup warnings, progress lines, and console-style telemetry output to stderr or an approved diagnostic sink with a bounded marker. Structured error results that are part of the machine-readable protocol may go to stdout; human-readable validation, setup, and degraded-mode messages go to stderr unless a versioned protocol frame carries them. Guards must be idempotent, preserve writer callbacks or backpressure semantics where the host exposes them, buffer until frame boundaries before classification, flush or divert partial buffered text during abort, exception, broken-pipe, forced-close, and shutdown paths, restore the original writer during cleanup, and surface diversion as sanitized diagnostics without recording raw prompts, paths, credentials, payload bodies, account/session/principal/workspace identifiers, transport or request ids, raw stdout/stderr byte chunks, or free-form diverted lines. Disable or reroute console exporters and other background emitters that can write formatted objects to stdout while the protocol channel is active. Language-level writer guards are not enough when subprocesses, native extensions, inherited file descriptors, or host wrappers can write to the same channel; use fd-level capture/isolation or explicit child-process stdout routing for every spawned or embedded emitter under machine-readable mode. A polluted, truncated, or mixed stdout stream is a protocol failure, not a recoverable parser warning, unless the protocol defines versioned, bounded, self-delimiting resynchronization that is bound to the current generation, clears or tombstones pending requests safely, preserves durable high-watermarks, and cannot re-open completed authorization or action paths.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Agent Task Orchestration
|
|
2
|
+
|
|
3
|
+
## Product/runtime agent tasks as a control plane
|
|
4
|
+
|
|
5
|
+
Treat product/runtime agent tasks as a control plane, not as ad hoc promises or UI-only state. Every foreground, background, worker, remote, or in-process task needs a stable task id, task type, parent/session identity, user intent summary, capability/permission scope, tool-use or request correlation id where applicable, start/end timestamps, terminal status, output location and read offset, notification state, cleanup owner, and resumability policy. A durable task list or checklist is part of the same model-visible state: bind its storage namespace to principal/session/team/workspace scope, sanitize storage keys, preserve monotonic task identity across deletion or reset, serialize create/update/delete/claim operations with list-level or task-level locks as appropriate, validate task schema before use, and distinguish missing, malformed, blocked, already-owned, already-completed, busy-owner, and deleted tasks instead of treating them as empty success. Output for backgrounded work must be isolated from the foreground transcript unless explicitly merged, and task result insertion must preserve ordering, provenance, and finality. Bind every model-visible task summary, suggestion, queued attachment, and speculative response to task id, output generation or digest, read cursor, progress/event id, notification generation, retention generation, session incarnation, and privacy/source-scope labels; invalidate or revalidate after any output append, truncation, eviction, progress movement, read-offset change, background state change, completion notification, stalled-prompt notification, checklist create/update/claim/delete, dependency change, owner change, watcher refresh, stop/kill event, or tuple drift.
|
|
6
|
+
|
|
7
|
+
## Task state transition safety
|
|
8
|
+
|
|
9
|
+
Task state transitions must be monotonic and race-safe. Only running or pending tasks may accept progress, injected messages, or shutdown requests; terminal tasks must reject late output, late approvals, late user messages, duplicate completion, duplicate notification, and stale poll results. Checklist/task-list transitions need the same finality: a task may be claimed only after unresolved blockers and existing owners are checked under the current list generation; dependency updates must reject cycles, dangling or deleted-task edges, cross-list or cross-namespace edges, and stale blocker snapshots before claim or completion; ownership assignment, dependency edges, creation hooks, and completion hooks must either commit atomically or surface a non-completion result without leaving half-created, falsely completed, wrongly assigned, or partially notified tasks. Watchers and polling loops must debounce file or storage events, avoid per-turn watch churn, fence hide/reset timers by the task-list generation they were scheduled for, release claims when prompt submission fails, and fall back to polling or explicit refresh when storage notifications are missed. A multi-step checklist that closes without any verification item should surface a bounded verification nudge rather than letting the final response become the only evidence of completion. Cancellation needs a typed result that distinguishes user stop, parent abort, dependency failure, timeout, and unsupported task type; parent task cancellation must abort child workers and cleanup their owned background processes, queued notifications, credentials, and output handles without killing unrelated tasks.
|
|
10
|
+
|
|
11
|
+
## Background and remote task recovery
|
|
12
|
+
|
|
13
|
+
Background and remote task recovery must fetch fresh authority before resurrection. Persist only the metadata needed to reconnect; on resume, re-check live status, session generation/incarnation, principal/workspace scope, command/request intent, and authorization policy before re-registering a task. Archived, missing, unauthorized, or terminal remote work must not be resurrected. Pollers must use cursors or event ids, delta append, stable-idle or heartbeat debouncing, bounded timeout, and fencing against in-flight stop/kill races so a stale poll cannot overwrite a terminal state or emit a second completion. Before a resumed, retried, or replacement worker performs any write, tool action, remote call, or other external side effect, bind it to a task id, execution-attempt id, effect id or idempotency key, and authorization tuple; record durable prepared/committed/failed/unknown finality. Resume must reconnect or reconcile committed and unknown effects, not re-execute them, unless there is durable proof that no side effect committed.
|