scc-universal 1.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/.claude-plugin/plugin.json +44 -0
- package/.cursor/agents/deep-researcher.md +142 -0
- package/.cursor/agents/doc-updater.md +219 -0
- package/.cursor/agents/eval-runner.md +335 -0
- package/.cursor/agents/learning-engine.md +210 -0
- package/.cursor/agents/loop-operator.md +245 -0
- package/.cursor/agents/refactor-cleaner.md +119 -0
- package/.cursor/agents/sf-admin-agent.md +127 -0
- package/.cursor/agents/sf-agentforce-agent.md +126 -0
- package/.cursor/agents/sf-apex-agent.md +117 -0
- package/.cursor/agents/sf-architect.md +426 -0
- package/.cursor/agents/sf-aura-reviewer.md +369 -0
- package/.cursor/agents/sf-bugfix-agent.md +101 -0
- package/.cursor/agents/sf-flow-agent.md +155 -0
- package/.cursor/agents/sf-integration-agent.md +141 -0
- package/.cursor/agents/sf-lwc-agent.md +123 -0
- package/.cursor/agents/sf-review-agent.md +357 -0
- package/.cursor/agents/sf-visualforce-reviewer.md +465 -0
- package/.cursor/hooks/adapter.js +81 -0
- package/.cursor/hooks/after-file-edit.js +26 -0
- package/.cursor/hooks/after-mcp-execution.js +12 -0
- package/.cursor/hooks/after-shell-execution.js +30 -0
- package/.cursor/hooks/after-tab-file-edit.js +12 -0
- package/.cursor/hooks/before-mcp-execution.js +11 -0
- package/.cursor/hooks/before-read-file.js +13 -0
- package/.cursor/hooks/before-shell-execution.js +29 -0
- package/.cursor/hooks/before-submit-prompt.js +23 -0
- package/.cursor/hooks/pre-compact.js +7 -0
- package/.cursor/hooks/session-end.js +10 -0
- package/.cursor/hooks/session-start.js +10 -0
- package/.cursor/hooks/stop.js +18 -0
- package/.cursor/hooks/subagent-start.js +10 -0
- package/.cursor/hooks/subagent-stop.js +10 -0
- package/.cursor/hooks.json +107 -0
- package/.cursor/skills/aside/SKILL.md +115 -0
- package/.cursor/skills/checkpoint/SKILL.md +50 -0
- package/.cursor/skills/configure-scc/SKILL.md +160 -0
- package/.cursor/skills/continuous-agent-loop/SKILL.md +260 -0
- package/.cursor/skills/mcp-server-patterns/SKILL.md +142 -0
- package/.cursor/skills/model-route/SKILL.md +81 -0
- package/.cursor/skills/prompt-optimizer/SKILL.md +366 -0
- package/.cursor/skills/refactor-clean/SKILL.md +133 -0
- package/.cursor/skills/resume-session/SKILL.md +111 -0
- package/.cursor/skills/save-session/SKILL.md +183 -0
- package/.cursor/skills/search-first/SKILL.md +140 -0
- package/.cursor/skills/security-scan/SKILL.md +142 -0
- package/.cursor/skills/sessions/SKILL.md +124 -0
- package/.cursor/skills/sf-agentforce-development/SKILL.md +449 -0
- package/.cursor/skills/sf-apex-async-patterns/SKILL.md +324 -0
- package/.cursor/skills/sf-apex-best-practices/SKILL.md +421 -0
- package/.cursor/skills/sf-apex-constraints/SKILL.md +79 -0
- package/.cursor/skills/sf-apex-cursor/SKILL.md +336 -0
- package/.cursor/skills/sf-apex-enterprise-patterns/SKILL.md +344 -0
- package/.cursor/skills/sf-apex-testing/SKILL.md +407 -0
- package/.cursor/skills/sf-api-design/SKILL.md +237 -0
- package/.cursor/skills/sf-approval-processes/SKILL.md +312 -0
- package/.cursor/skills/sf-aura-development/SKILL.md +260 -0
- package/.cursor/skills/sf-build-fix/SKILL.md +120 -0
- package/.cursor/skills/sf-data-modeling/SKILL.md +274 -0
- package/.cursor/skills/sf-debugging/SKILL.md +362 -0
- package/.cursor/skills/sf-deployment/SKILL.md +291 -0
- package/.cursor/skills/sf-deployment-constraints/SKILL.md +153 -0
- package/.cursor/skills/sf-devops-ci-cd/SKILL.md +322 -0
- package/.cursor/skills/sf-docs-lookup/SKILL.md +100 -0
- package/.cursor/skills/sf-e2e-testing/SKILL.md +321 -0
- package/.cursor/skills/sf-experience-cloud/SKILL.md +248 -0
- package/.cursor/skills/sf-flow-development/SKILL.md +376 -0
- package/.cursor/skills/sf-governor-limits/SKILL.md +319 -0
- package/.cursor/skills/sf-harness-audit/SKILL.md +139 -0
- package/.cursor/skills/sf-help/SKILL.md +156 -0
- package/.cursor/skills/sf-integration/SKILL.md +479 -0
- package/.cursor/skills/sf-lwc-constraints/SKILL.md +128 -0
- package/.cursor/skills/sf-lwc-development/SKILL.md +302 -0
- package/.cursor/skills/sf-lwc-testing/SKILL.md +387 -0
- package/.cursor/skills/sf-metadata-management/SKILL.md +285 -0
- package/.cursor/skills/sf-platform-events-cdc/SKILL.md +372 -0
- package/.cursor/skills/sf-quickstart/SKILL.md +170 -0
- package/.cursor/skills/sf-security/SKILL.md +330 -0
- package/.cursor/skills/sf-security-constraints/SKILL.md +125 -0
- package/.cursor/skills/sf-soql-constraints/SKILL.md +129 -0
- package/.cursor/skills/sf-soql-optimization/SKILL.md +353 -0
- package/.cursor/skills/sf-tdd-workflow/SKILL.md +332 -0
- package/.cursor/skills/sf-testing-constraints/SKILL.md +198 -0
- package/.cursor/skills/sf-trigger-constraints/SKILL.md +88 -0
- package/.cursor/skills/sf-trigger-frameworks/SKILL.md +343 -0
- package/.cursor/skills/sf-visualforce-development/SKILL.md +259 -0
- package/.cursor/skills/strategic-compact/SKILL.md +205 -0
- package/.cursor/skills/update-docs/SKILL.md +162 -0
- package/.cursor/skills/update-platform-docs/SKILL.md +86 -0
- package/.cursor-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +522 -0
- package/agents/deep-researcher.md +145 -0
- package/agents/doc-updater.md +222 -0
- package/agents/eval-runner.md +340 -0
- package/agents/learning-engine.md +211 -0
- package/agents/loop-operator.md +247 -0
- package/agents/refactor-cleaner.md +122 -0
- package/agents/sf-admin-agent.md +131 -0
- package/agents/sf-agentforce-agent.md +132 -0
- package/agents/sf-apex-agent.md +124 -0
- package/agents/sf-architect.md +435 -0
- package/agents/sf-aura-reviewer.md +372 -0
- package/agents/sf-bugfix-agent.md +105 -0
- package/agents/sf-flow-agent.md +159 -0
- package/agents/sf-integration-agent.md +146 -0
- package/agents/sf-lwc-agent.md +127 -0
- package/agents/sf-review-agent.md +366 -0
- package/agents/sf-visualforce-reviewer.md +468 -0
- package/assets/logo.svg +18 -0
- package/docs/ARCHITECTURE.md +133 -0
- package/docs/authoring-guide.md +373 -0
- package/docs/hook-development.md +578 -0
- package/docs/token-optimization.md +139 -0
- package/docs/workflow-examples.md +645 -0
- package/examples/agentforce-action/README.md +227 -0
- package/examples/apex-trigger-handler/README.md +114 -0
- package/examples/devops-pipeline/README.md +325 -0
- package/examples/flow-automation/README.md +188 -0
- package/examples/integration-pattern/README.md +416 -0
- package/examples/lwc-component/README.md +180 -0
- package/examples/platform-events/README.md +492 -0
- package/examples/scratch-org-setup/README.md +138 -0
- package/examples/security-audit/README.md +244 -0
- package/examples/visualforce-migration/README.md +314 -0
- package/hooks/hooks.json +338 -0
- package/hooks/memory-persistence/README.md +73 -0
- package/manifests/install-modules.json +217 -0
- package/manifests/install-profiles.json +17 -0
- package/mcp-configs/mcp-servers.json +19 -0
- package/package.json +89 -0
- package/schemas/hooks.schema.json +123 -0
- package/schemas/install-modules.schema.json +76 -0
- package/schemas/install-profiles.schema.json +28 -0
- package/schemas/install-state.schema.json +73 -0
- package/schemas/package-manager.schema.json +18 -0
- package/schemas/plugin.schema.json +112 -0
- package/schemas/scc-install-config.schema.json +29 -0
- package/schemas/state-store.schema.json +111 -0
- package/scripts/cli/install-apply.js +170 -0
- package/scripts/cli/uninstall.js +193 -0
- package/scripts/hooks/check-console-log.js +101 -0
- package/scripts/hooks/check-hook-enabled.js +17 -0
- package/scripts/hooks/check-platform-docs-age.js +48 -0
- package/scripts/hooks/cost-tracker.js +78 -0
- package/scripts/hooks/doc-file-warning.js +63 -0
- package/scripts/hooks/evaluate-session.js +98 -0
- package/scripts/hooks/governor-check.js +220 -0
- package/scripts/hooks/learning-observe.sh +206 -0
- package/scripts/hooks/mcp-health-check.js +588 -0
- package/scripts/hooks/post-bash-build-complete.js +34 -0
- package/scripts/hooks/post-bash-pr-created.js +43 -0
- package/scripts/hooks/post-edit-console-warn.js +61 -0
- package/scripts/hooks/post-edit-format.js +79 -0
- package/scripts/hooks/post-edit-typecheck.js +98 -0
- package/scripts/hooks/post-write.js +168 -0
- package/scripts/hooks/pre-bash-git-push-reminder.js +35 -0
- package/scripts/hooks/pre-bash-tmux-reminder.js +47 -0
- package/scripts/hooks/pre-compact.js +51 -0
- package/scripts/hooks/pre-tool-use.js +163 -0
- package/scripts/hooks/pre-write-doc-warn.js +9 -0
- package/scripts/hooks/quality-gate.js +251 -0
- package/scripts/hooks/run-with-flags-shell.sh +32 -0
- package/scripts/hooks/run-with-flags.js +135 -0
- package/scripts/hooks/session-end-marker.js +29 -0
- package/scripts/hooks/session-end.js +311 -0
- package/scripts/hooks/session-start.js +202 -0
- package/scripts/hooks/sfdx-scanner-check.js +142 -0
- package/scripts/hooks/sfdx-validate.js +119 -0
- package/scripts/hooks/stop-hook.js +170 -0
- package/scripts/hooks/suggest-compact.js +67 -0
- package/scripts/lib/agent-adapter.js +82 -0
- package/scripts/lib/apex-analysis.js +194 -0
- package/scripts/lib/hook-flags.js +74 -0
- package/scripts/lib/install-config.js +73 -0
- package/scripts/lib/install-executor.js +363 -0
- package/scripts/lib/install-state.js +121 -0
- package/scripts/lib/orchestration-session.js +299 -0
- package/scripts/lib/package-manager.js +124 -0
- package/scripts/lib/project-detect.js +228 -0
- package/scripts/lib/schema-validator.js +190 -0
- package/scripts/lib/skill-adapter.js +100 -0
- package/scripts/lib/state-store.js +376 -0
- package/scripts/lib/tmux-worktree-orchestrator.js +598 -0
- package/scripts/lib/utils.js +313 -0
- package/scripts/scc.js +164 -0
- package/skills/_reference/AGENTFORCE_PATTERNS.md +112 -0
- package/skills/_reference/APEX_CURSOR.md +159 -0
- package/skills/_reference/API_VERSIONS.md +78 -0
- package/skills/_reference/APPROVAL_PROCESSES.md +105 -0
- package/skills/_reference/ASYNC_PATTERNS.md +163 -0
- package/skills/_reference/AURA_COMPONENTS.md +146 -0
- package/skills/_reference/DATA_MIGRATION_PATTERNS.md +151 -0
- package/skills/_reference/DATA_MODELING.md +124 -0
- package/skills/_reference/DEBUGGING_TOOLS.md +140 -0
- package/skills/_reference/DEPLOYMENT_CHECKLIST.md +87 -0
- package/skills/_reference/DEPRECATIONS.md +79 -0
- package/skills/_reference/DOCKER_CI_PATTERNS.md +138 -0
- package/skills/_reference/ENTERPRISE_PATTERNS.md +122 -0
- package/skills/_reference/EXPERIENCE_CLOUD.md +143 -0
- package/skills/_reference/FLOW_PATTERNS.md +113 -0
- package/skills/_reference/GOVERNOR_LIMITS.md +77 -0
- package/skills/_reference/INTEGRATION_PATTERNS.md +105 -0
- package/skills/_reference/LWC_PATTERNS.md +79 -0
- package/skills/_reference/METADATA_TYPES.md +115 -0
- package/skills/_reference/NAMING_CONVENTIONS.md +84 -0
- package/skills/_reference/PACKAGE_DEVELOPMENT.md +150 -0
- package/skills/_reference/PLATFORM_EVENTS.md +121 -0
- package/skills/_reference/REPORTING_API.md +143 -0
- package/skills/_reference/SCRATCH_ORG_PATTERNS.md +126 -0
- package/skills/_reference/SECURITY_PATTERNS.md +127 -0
- package/skills/_reference/SHARING_MODEL.md +120 -0
- package/skills/_reference/SOQL_PATTERNS.md +119 -0
- package/skills/_reference/TESTING_STANDARDS.md +96 -0
- package/skills/_reference/TRIGGER_PATTERNS.md +114 -0
- package/skills/_reference/VISUALFORCE_PATTERNS.md +121 -0
- package/skills/aside/SKILL.md +118 -0
- package/skills/checkpoint/SKILL.md +53 -0
- package/skills/configure-scc/SKILL.md +163 -0
- package/skills/continuous-agent-loop/SKILL.md +264 -0
- package/skills/mcp-server-patterns/SKILL.md +146 -0
- package/skills/model-route/SKILL.md +84 -0
- package/skills/prompt-optimizer/SKILL.md +369 -0
- package/skills/refactor-clean/SKILL.md +136 -0
- package/skills/resume-session/SKILL.md +114 -0
- package/skills/save-session/SKILL.md +186 -0
- package/skills/search-first/SKILL.md +144 -0
- package/skills/security-scan/SKILL.md +146 -0
- package/skills/sessions/SKILL.md +127 -0
- package/skills/sf-agentforce-development/SKILL.md +450 -0
- package/skills/sf-apex-async-patterns/SKILL.md +326 -0
- package/skills/sf-apex-best-practices/SKILL.md +425 -0
- package/skills/sf-apex-constraints/SKILL.md +81 -0
- package/skills/sf-apex-cursor/SKILL.md +338 -0
- package/skills/sf-apex-enterprise-patterns/SKILL.md +348 -0
- package/skills/sf-apex-testing/SKILL.md +409 -0
- package/skills/sf-api-design/SKILL.md +238 -0
- package/skills/sf-approval-processes/SKILL.md +315 -0
- package/skills/sf-aura-development/SKILL.md +263 -0
- package/skills/sf-build-fix/SKILL.md +121 -0
- package/skills/sf-data-modeling/SKILL.md +278 -0
- package/skills/sf-debugging/SKILL.md +363 -0
- package/skills/sf-deployment/SKILL.md +295 -0
- package/skills/sf-deployment-constraints/SKILL.md +155 -0
- package/skills/sf-devops-ci-cd/SKILL.md +325 -0
- package/skills/sf-docs-lookup/SKILL.md +103 -0
- package/skills/sf-e2e-testing/SKILL.md +324 -0
- package/skills/sf-experience-cloud/SKILL.md +249 -0
- package/skills/sf-flow-development/SKILL.md +377 -0
- package/skills/sf-governor-limits/SKILL.md +323 -0
- package/skills/sf-harness-audit/SKILL.md +142 -0
- package/skills/sf-help/SKILL.md +159 -0
- package/skills/sf-integration/SKILL.md +483 -0
- package/skills/sf-lwc-constraints/SKILL.md +130 -0
- package/skills/sf-lwc-development/SKILL.md +303 -0
- package/skills/sf-lwc-testing/SKILL.md +388 -0
- package/skills/sf-metadata-management/SKILL.md +288 -0
- package/skills/sf-platform-events-cdc/SKILL.md +375 -0
- package/skills/sf-quickstart/SKILL.md +173 -0
- package/skills/sf-security/SKILL.md +334 -0
- package/skills/sf-security-constraints/SKILL.md +127 -0
- package/skills/sf-soql-constraints/SKILL.md +131 -0
- package/skills/sf-soql-optimization/SKILL.md +354 -0
- package/skills/sf-tdd-workflow/SKILL.md +336 -0
- package/skills/sf-testing-constraints/SKILL.md +200 -0
- package/skills/sf-trigger-constraints/SKILL.md +90 -0
- package/skills/sf-trigger-frameworks/SKILL.md +347 -0
- package/skills/sf-visualforce-development/SKILL.md +260 -0
- package/skills/strategic-compact/SKILL.md +208 -0
- package/skills/update-docs/SKILL.md +165 -0
- package/skills/update-platform-docs/SKILL.md +90 -0
package/package.json
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "scc-universal",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Complete collection of production-ready Salesforce agents, skills, hooks, and MCP configurations for Claude Code and other AI harnesses. Salesforce Claude Code (SCC) — your AI-powered Salesforce development partner.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"salesforce",
|
|
7
|
+
"apex",
|
|
8
|
+
"lwc",
|
|
9
|
+
"lightning-web-components",
|
|
10
|
+
"soql",
|
|
11
|
+
"sf-cli",
|
|
12
|
+
"salesforce-dx",
|
|
13
|
+
"agentforce",
|
|
14
|
+
"claude-code",
|
|
15
|
+
"ai",
|
|
16
|
+
"agents",
|
|
17
|
+
"skills",
|
|
18
|
+
"hooks",
|
|
19
|
+
"mcp",
|
|
20
|
+
"salesforce-devops",
|
|
21
|
+
"sfdx",
|
|
22
|
+
"trigger-framework",
|
|
23
|
+
"fflib",
|
|
24
|
+
"salesforce-testing",
|
|
25
|
+
"salesforce-security"
|
|
26
|
+
],
|
|
27
|
+
"author": {
|
|
28
|
+
"name": "Jiten Singh",
|
|
29
|
+
"email": "jitencseng@gmail.com",
|
|
30
|
+
"url": "https://github.com/jiten-singh-shahi"
|
|
31
|
+
},
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/jiten-singh-shahi/salesforce-claude-code"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/jiten-singh-shahi/salesforce-claude-code#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/jiten-singh-shahi/salesforce-claude-code/issues"
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
".cursor/",
|
|
43
|
+
"agents/",
|
|
44
|
+
"docs/",
|
|
45
|
+
"examples/",
|
|
46
|
+
"hooks/",
|
|
47
|
+
"manifests/",
|
|
48
|
+
"mcp-configs/",
|
|
49
|
+
"schemas/",
|
|
50
|
+
"scripts/scc.js",
|
|
51
|
+
"scripts/cli/",
|
|
52
|
+
"scripts/hooks/",
|
|
53
|
+
"scripts/lib/",
|
|
54
|
+
"skills/",
|
|
55
|
+
"assets/",
|
|
56
|
+
".claude-plugin/plugin.json",
|
|
57
|
+
".cursor-plugin/plugin.json"
|
|
58
|
+
],
|
|
59
|
+
"bin": {
|
|
60
|
+
"scc": "scripts/scc.js",
|
|
61
|
+
"scc-install": "scripts/cli/install-apply.js"
|
|
62
|
+
},
|
|
63
|
+
"scripts": {
|
|
64
|
+
"build": "node scripts/dev/build.js",
|
|
65
|
+
"build:cursor-skills": "node scripts/dev/build-cursor-skills.js",
|
|
66
|
+
"build:cursor-agents": "node scripts/dev/build-cursor-agents.js",
|
|
67
|
+
"test": "npm run build && node scripts/ci/validate-agents.js && node scripts/ci/validate-commands.js && node scripts/ci/validate-skills.js && node scripts/ci/validate-hooks.js && node scripts/ci/validate-install-manifests.js && node scripts/ci/validate-no-personal-paths.js && node tests/run-all.js",
|
|
68
|
+
"lint": "eslint . && markdownlint '**/*.md' --ignore node_modules",
|
|
69
|
+
"coverage": "c8 --all --include=\"scripts/**/*.js\" --exclude=\"scripts/scc.js\" --reporter=text --reporter=lcov --check-coverage --lines 80 --functions 80 --branches 80 --statements 80 node tests/run-all.js",
|
|
70
|
+
"harness:audit": "node scripts/dev/harness-audit.js",
|
|
71
|
+
"orchestrate:status": "node scripts/dev/orchestration-status.js",
|
|
72
|
+
"orchestrate:tmux": "node scripts/dev/orchestrate-worktrees.js",
|
|
73
|
+
"version:bump": "node scripts/dev/bump-version.js",
|
|
74
|
+
"version:sync": "node scripts/dev/bump-version.js --set",
|
|
75
|
+
"postinstall": "node -e \"console.log('\\n\\x1b[36m╔══════════════════════════════════════════╗\\x1b[0m'); console.log('\\x1b[36m║ Salesforce Claude Code (SCC) installed ║\\x1b[0m'); console.log('\\x1b[36m╚══════════════════════════════════════════╝\\x1b[0m'); console.log('\\nRun: npx scc install apex (or lwc, all)\\n');\""
|
|
76
|
+
},
|
|
77
|
+
"dependencies": {},
|
|
78
|
+
"devDependencies": {
|
|
79
|
+
"@eslint/js": "^10.0.1",
|
|
80
|
+
"ajv": "^8.18.0",
|
|
81
|
+
"c8": "^11.0.0",
|
|
82
|
+
"eslint": "^10.1.0",
|
|
83
|
+
"globals": "^17.4.0",
|
|
84
|
+
"markdownlint-cli": "^0.48.0"
|
|
85
|
+
},
|
|
86
|
+
"engines": {
|
|
87
|
+
"node": ">=20"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://scc-universal/schemas/hooks.schema.json",
|
|
4
|
+
"title": "SCC Hooks Configuration",
|
|
5
|
+
"description": "JSON Schema for SCC hooks.json — defines Claude Code lifecycle hooks for Salesforce development",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["hooks"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Schema reference URI"
|
|
13
|
+
},
|
|
14
|
+
"hooks": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"description": "Map of lifecycle event names to arrays of hook group definitions",
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"properties": {
|
|
19
|
+
"SessionStart": {
|
|
20
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
21
|
+
"description": "Hooks fired when a Claude Code session begins"
|
|
22
|
+
},
|
|
23
|
+
"PreToolUse": {
|
|
24
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
25
|
+
"description": "Hooks fired before a tool is used"
|
|
26
|
+
},
|
|
27
|
+
"PostToolUse": {
|
|
28
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
29
|
+
"description": "Hooks fired after a tool completes"
|
|
30
|
+
},
|
|
31
|
+
"PostToolUseFailure": {
|
|
32
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
33
|
+
"description": "Hooks fired when a tool use fails"
|
|
34
|
+
},
|
|
35
|
+
"PreCompact": {
|
|
36
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
37
|
+
"description": "Hooks fired before context compaction"
|
|
38
|
+
},
|
|
39
|
+
"Stop": {
|
|
40
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
41
|
+
"description": "Hooks fired when Claude Code agent stops"
|
|
42
|
+
},
|
|
43
|
+
"SessionEnd": {
|
|
44
|
+
"$ref": "#/definitions/hookGroupArray",
|
|
45
|
+
"description": "Hooks fired when a session ends"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"definitions": {
|
|
51
|
+
"hookGroupArray": {
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": {
|
|
54
|
+
"$ref": "#/definitions/hookGroup"
|
|
55
|
+
},
|
|
56
|
+
"minItems": 1
|
|
57
|
+
},
|
|
58
|
+
"hookGroup": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"required": ["hooks"],
|
|
61
|
+
"additionalProperties": false,
|
|
62
|
+
"properties": {
|
|
63
|
+
"matcher": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"description": "Optional tool name matcher (e.g., 'Bash', 'Write', 'Read')"
|
|
66
|
+
},
|
|
67
|
+
"hooks": {
|
|
68
|
+
"type": "array",
|
|
69
|
+
"description": "Array of individual hook definitions in this group",
|
|
70
|
+
"items": {
|
|
71
|
+
"$ref": "#/definitions/hookDefinition"
|
|
72
|
+
},
|
|
73
|
+
"minItems": 1
|
|
74
|
+
},
|
|
75
|
+
"description": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "Human-readable description of this hook group"
|
|
78
|
+
},
|
|
79
|
+
"profile": {
|
|
80
|
+
"type": "string",
|
|
81
|
+
"enum": ["minimal", "standard", "strict"],
|
|
82
|
+
"description": "Minimum profile level required for this hook group to run"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"hookDefinition": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["type", "command"],
|
|
89
|
+
"additionalProperties": false,
|
|
90
|
+
"properties": {
|
|
91
|
+
"type": {
|
|
92
|
+
"type": "string",
|
|
93
|
+
"enum": ["command"],
|
|
94
|
+
"description": "Hook execution type — currently only 'command' is supported"
|
|
95
|
+
},
|
|
96
|
+
"command": {
|
|
97
|
+
"type": "string",
|
|
98
|
+
"description": "Shell command to execute. Use ${CLAUDE_PLUGIN_ROOT} for the plugin root path.",
|
|
99
|
+
"minLength": 1
|
|
100
|
+
},
|
|
101
|
+
"async": {
|
|
102
|
+
"type": "boolean",
|
|
103
|
+
"description": "Whether to run this hook asynchronously (non-blocking)",
|
|
104
|
+
"default": false
|
|
105
|
+
},
|
|
106
|
+
"timeout": {
|
|
107
|
+
"type": "integer",
|
|
108
|
+
"description": "Timeout in seconds before the hook is killed",
|
|
109
|
+
"minimum": 1,
|
|
110
|
+
"maximum": 120,
|
|
111
|
+
"default": 30
|
|
112
|
+
},
|
|
113
|
+
"env": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"description": "Additional environment variables to set for this hook",
|
|
116
|
+
"additionalProperties": {
|
|
117
|
+
"type": "string"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "SCC Install Modules",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["version", "modules"],
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"version": { "type": "integer", "minimum": 1 },
|
|
9
|
+
"modules": {
|
|
10
|
+
"type": "array",
|
|
11
|
+
"minItems": 1,
|
|
12
|
+
"items": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"required": ["id", "kind", "description", "dependencies", "cost", "stability"],
|
|
15
|
+
"additionalProperties": false,
|
|
16
|
+
"properties": {
|
|
17
|
+
"id": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
18
|
+
"kind": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"enum": ["agents", "commands", "hooks", "platform", "orchestration", "skills", "config", "bundle"]
|
|
21
|
+
},
|
|
22
|
+
"description": { "type": "string", "minLength": 1 },
|
|
23
|
+
"paths": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": { "type": "string", "minLength": 1 }
|
|
26
|
+
},
|
|
27
|
+
"targets": {
|
|
28
|
+
"oneOf": [
|
|
29
|
+
{
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"claude": { "type": ["string", "null"] },
|
|
33
|
+
"cursor": { "type": ["string", "null"] }
|
|
34
|
+
},
|
|
35
|
+
"additionalProperties": false
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": { "type": "string", "enum": ["claude", "cursor"] }
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"pathGroups": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"required": ["paths", "targets"],
|
|
48
|
+
"additionalProperties": false,
|
|
49
|
+
"properties": {
|
|
50
|
+
"paths": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": { "type": "string", "minLength": 1 }
|
|
53
|
+
},
|
|
54
|
+
"targets": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"claude": { "type": ["string", "null"] },
|
|
58
|
+
"cursor": { "type": ["string", "null"] }
|
|
59
|
+
},
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
|
|
68
|
+
},
|
|
69
|
+
"defaultInstall": { "type": "boolean" },
|
|
70
|
+
"cost": { "type": "string", "enum": ["light", "medium", "heavy"] },
|
|
71
|
+
"stability": { "type": "string", "enum": ["experimental", "beta", "stable"] }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "SCC Install Profiles",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["version", "profiles"],
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"version": { "type": "integer", "minimum": 1 },
|
|
9
|
+
"profiles": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"minProperties": 1,
|
|
12
|
+
"propertyNames": { "pattern": "^[a-z0-9-]+$" },
|
|
13
|
+
"additionalProperties": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"required": ["description", "modules"],
|
|
16
|
+
"additionalProperties": false,
|
|
17
|
+
"properties": {
|
|
18
|
+
"description": { "type": "string", "minLength": 1 },
|
|
19
|
+
"modules": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"minItems": 1,
|
|
22
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "SCC Install State",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["schemaVersion", "installedAt", "target", "request", "resolution", "source", "operations"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"schemaVersion": { "type": "string", "const": "scc.install.v1" },
|
|
9
|
+
"installedAt": { "type": "string", "minLength": 1 },
|
|
10
|
+
"lastValidatedAt": { "type": "string", "minLength": 1 },
|
|
11
|
+
"target": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"additionalProperties": false,
|
|
14
|
+
"required": ["id", "root", "installStatePath"],
|
|
15
|
+
"properties": {
|
|
16
|
+
"id": { "type": "string", "minLength": 1 },
|
|
17
|
+
"target": { "type": "string", "minLength": 1 },
|
|
18
|
+
"kind": { "type": "string", "enum": ["home", "project"] },
|
|
19
|
+
"root": { "type": "string", "minLength": 1 },
|
|
20
|
+
"installStatePath": { "type": "string", "minLength": 1 }
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"request": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"additionalProperties": false,
|
|
26
|
+
"required": ["profile", "modules", "includeComponents", "excludeComponents", "legacyLanguages", "legacyMode"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"profile": { "type": ["string", "null"] },
|
|
29
|
+
"modules": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
30
|
+
"includeComponents": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
31
|
+
"excludeComponents": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
32
|
+
"legacyLanguages": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
33
|
+
"legacyMode": { "type": "boolean" }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"resolution": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"required": ["selectedModules", "skippedModules"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"selectedModules": { "type": "array", "items": { "type": "string", "minLength": 1 } },
|
|
42
|
+
"skippedModules": { "type": "array", "items": { "type": "string", "minLength": 1 } }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"source": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": false,
|
|
48
|
+
"required": ["repoVersion", "repoCommit", "manifestVersion"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"repoVersion": { "type": ["string", "null"] },
|
|
51
|
+
"repoCommit": { "type": ["string", "null"] },
|
|
52
|
+
"manifestVersion": { "type": "integer", "minimum": 1 }
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"operations": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"additionalProperties": true,
|
|
60
|
+
"required": ["kind", "moduleId", "sourceRelativePath", "destinationPath", "strategy", "ownership", "scaffoldOnly"],
|
|
61
|
+
"properties": {
|
|
62
|
+
"kind": { "type": "string", "minLength": 1 },
|
|
63
|
+
"moduleId": { "type": "string", "minLength": 1 },
|
|
64
|
+
"sourceRelativePath": { "type": "string", "minLength": 1 },
|
|
65
|
+
"destinationPath": { "type": "string", "minLength": 1 },
|
|
66
|
+
"strategy": { "type": "string", "minLength": 1 },
|
|
67
|
+
"ownership": { "type": "string", "minLength": 1 },
|
|
68
|
+
"scaffoldOnly": { "type": "boolean" }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Package Manager Configuration",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required": ["packageManager"],
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"packageManager": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": ["npm", "pnpm", "yarn", "bun"]
|
|
11
|
+
},
|
|
12
|
+
"setAt": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"format": "date-time",
|
|
15
|
+
"description": "ISO 8601 timestamp when the preference was last set"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://scc-universal/schemas/plugin.schema.json",
|
|
4
|
+
"title": "SCC Plugin Manifest",
|
|
5
|
+
"description": "JSON Schema for .claude-plugin/plugin.json — describes the SCC plugin for the Claude Code marketplace",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "version", "displayName", "description", "license", "engines", "main"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"$schema": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Schema reference URI"
|
|
13
|
+
},
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Package/plugin name (kebab-case)",
|
|
17
|
+
"pattern": "^[a-z0-9-]+$",
|
|
18
|
+
"minLength": 1
|
|
19
|
+
},
|
|
20
|
+
"version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Semantic version string",
|
|
23
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.]+)?(\\+[a-zA-Z0-9.]+)?$"
|
|
24
|
+
},
|
|
25
|
+
"displayName": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Human-readable display name for the plugin",
|
|
28
|
+
"minLength": 1,
|
|
29
|
+
"maxLength": 80
|
|
30
|
+
},
|
|
31
|
+
"description": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Short plugin description shown in the marketplace",
|
|
34
|
+
"minLength": 10,
|
|
35
|
+
"maxLength": 300
|
|
36
|
+
},
|
|
37
|
+
"author": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Plugin author name or organization"
|
|
40
|
+
},
|
|
41
|
+
"license": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "SPDX license identifier",
|
|
44
|
+
"enum": ["MIT", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "ISC", "GPL-3.0", "LGPL-3.0", "MPL-2.0"]
|
|
45
|
+
},
|
|
46
|
+
"keywords": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"description": "Searchable keywords for marketplace discovery",
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"minLength": 1
|
|
52
|
+
},
|
|
53
|
+
"minItems": 1,
|
|
54
|
+
"maxItems": 20
|
|
55
|
+
},
|
|
56
|
+
"engines": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"description": "Required harness versions",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"properties": {
|
|
61
|
+
"claude-code": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Required Claude Code version (semver range)",
|
|
64
|
+
"pattern": "^[>=^~]?\\d+\\.\\d+\\.\\d+.*$"
|
|
65
|
+
},
|
|
66
|
+
"node": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"description": "Required Node.js version (semver range)"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"main": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"description": "Relative path to the primary plugin entry file (hooks.json)",
|
|
75
|
+
"minLength": 1
|
|
76
|
+
},
|
|
77
|
+
"agents": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "Relative path to agents directory"
|
|
80
|
+
},
|
|
81
|
+
"skills": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"description": "Relative path to skills directory"
|
|
84
|
+
},
|
|
85
|
+
"commands": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"description": "Relative path to commands directory"
|
|
88
|
+
},
|
|
89
|
+
"rules": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"description": "Relative path to rules directory"
|
|
92
|
+
},
|
|
93
|
+
"repository": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"description": "Source repository information",
|
|
96
|
+
"properties": {
|
|
97
|
+
"type": {
|
|
98
|
+
"type": "string",
|
|
99
|
+
"enum": ["git", "svn"]
|
|
100
|
+
},
|
|
101
|
+
"url": {
|
|
102
|
+
"type": "string"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"homepage": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "Plugin homepage or documentation URL",
|
|
109
|
+
"format": "uri"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "SCC Install Config",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": ["version"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"$schema": { "type": "string", "minLength": 1 },
|
|
9
|
+
"version": { "type": "integer", "const": 1 },
|
|
10
|
+
"target": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"enum": ["claude", "cursor"]
|
|
13
|
+
},
|
|
14
|
+
"profile": { "type": "string", "pattern": "^[a-z0-9-]+$" },
|
|
15
|
+
"modules": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": { "type": "string", "pattern": "^[a-z0-9-]+$" }
|
|
18
|
+
},
|
|
19
|
+
"include": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": { "type": "string", "pattern": "^(baseline|lang|domain|feature):[a-z0-9-]+$" }
|
|
22
|
+
},
|
|
23
|
+
"exclude": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": { "type": "string", "pattern": "^(baseline|lang|domain|feature):[a-z0-9-]+$" }
|
|
26
|
+
},
|
|
27
|
+
"options": { "type": "object", "additionalProperties": true }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "scc.state-store.v1",
|
|
4
|
+
"title": "SCC State Store Schema",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"properties": {
|
|
8
|
+
"sessions": { "type": "array", "items": { "$ref": "#/$defs/session" } },
|
|
9
|
+
"skillRuns": { "type": "array", "items": { "$ref": "#/$defs/skillRun" } },
|
|
10
|
+
"skillVersions": { "type": "array", "items": { "$ref": "#/$defs/skillVersion" } },
|
|
11
|
+
"decisions": { "type": "array", "items": { "$ref": "#/$defs/decision" } },
|
|
12
|
+
"installState": { "type": "array", "items": { "$ref": "#/$defs/installState" } },
|
|
13
|
+
"governanceEvents": { "type": "array", "items": { "$ref": "#/$defs/governanceEvent" } }
|
|
14
|
+
},
|
|
15
|
+
"$defs": {
|
|
16
|
+
"nonEmptyString": { "type": "string", "minLength": 1 },
|
|
17
|
+
"nullableString": { "type": ["string", "null"] },
|
|
18
|
+
"nullableInteger": { "type": ["integer", "null"], "minimum": 0 },
|
|
19
|
+
"jsonValue": { "type": ["object", "array", "string", "number", "boolean", "null"] },
|
|
20
|
+
"jsonArray": { "type": "array" },
|
|
21
|
+
"session": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": ["id", "adapterId", "harness", "state", "repoRoot", "startedAt", "endedAt", "snapshot"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"id": { "$ref": "#/$defs/nonEmptyString" },
|
|
27
|
+
"adapterId": { "$ref": "#/$defs/nonEmptyString" },
|
|
28
|
+
"harness": { "$ref": "#/$defs/nonEmptyString" },
|
|
29
|
+
"state": { "$ref": "#/$defs/nonEmptyString" },
|
|
30
|
+
"repoRoot": { "$ref": "#/$defs/nullableString" },
|
|
31
|
+
"startedAt": { "$ref": "#/$defs/nullableString" },
|
|
32
|
+
"endedAt": { "$ref": "#/$defs/nullableString" },
|
|
33
|
+
"snapshot": { "type": ["object", "array"] }
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"skillRun": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"required": ["id", "skillId", "skillVersion", "sessionId", "taskDescription", "outcome", "failureReason", "tokensUsed", "durationMs", "userFeedback", "createdAt"],
|
|
40
|
+
"properties": {
|
|
41
|
+
"id": { "$ref": "#/$defs/nonEmptyString" },
|
|
42
|
+
"skillId": { "$ref": "#/$defs/nonEmptyString" },
|
|
43
|
+
"skillVersion": { "$ref": "#/$defs/nonEmptyString" },
|
|
44
|
+
"sessionId": { "$ref": "#/$defs/nonEmptyString" },
|
|
45
|
+
"taskDescription": { "$ref": "#/$defs/nonEmptyString" },
|
|
46
|
+
"outcome": { "$ref": "#/$defs/nonEmptyString" },
|
|
47
|
+
"failureReason": { "$ref": "#/$defs/nullableString" },
|
|
48
|
+
"tokensUsed": { "$ref": "#/$defs/nullableInteger" },
|
|
49
|
+
"durationMs": { "$ref": "#/$defs/nullableInteger" },
|
|
50
|
+
"userFeedback": { "$ref": "#/$defs/nullableString" },
|
|
51
|
+
"createdAt": { "$ref": "#/$defs/nonEmptyString" }
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"skillVersion": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"additionalProperties": false,
|
|
57
|
+
"required": ["skillId", "version", "contentHash", "amendmentReason", "promotedAt", "rolledBackAt"],
|
|
58
|
+
"properties": {
|
|
59
|
+
"skillId": { "$ref": "#/$defs/nonEmptyString" },
|
|
60
|
+
"version": { "$ref": "#/$defs/nonEmptyString" },
|
|
61
|
+
"contentHash": { "$ref": "#/$defs/nonEmptyString" },
|
|
62
|
+
"amendmentReason": { "$ref": "#/$defs/nullableString" },
|
|
63
|
+
"promotedAt": { "$ref": "#/$defs/nullableString" },
|
|
64
|
+
"rolledBackAt": { "$ref": "#/$defs/nullableString" }
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"decision": {
|
|
68
|
+
"type": "object",
|
|
69
|
+
"additionalProperties": false,
|
|
70
|
+
"required": ["id", "sessionId", "title", "rationale", "alternatives", "supersedes", "status", "createdAt"],
|
|
71
|
+
"properties": {
|
|
72
|
+
"id": { "$ref": "#/$defs/nonEmptyString" },
|
|
73
|
+
"sessionId": { "$ref": "#/$defs/nonEmptyString" },
|
|
74
|
+
"title": { "$ref": "#/$defs/nonEmptyString" },
|
|
75
|
+
"rationale": { "$ref": "#/$defs/nonEmptyString" },
|
|
76
|
+
"alternatives": { "$ref": "#/$defs/jsonArray" },
|
|
77
|
+
"supersedes": { "$ref": "#/$defs/nullableString" },
|
|
78
|
+
"status": { "$ref": "#/$defs/nonEmptyString" },
|
|
79
|
+
"createdAt": { "$ref": "#/$defs/nonEmptyString" }
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"installState": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": false,
|
|
85
|
+
"required": ["targetId", "targetRoot", "profile", "modules", "operations", "installedAt", "sourceVersion"],
|
|
86
|
+
"properties": {
|
|
87
|
+
"targetId": { "$ref": "#/$defs/nonEmptyString" },
|
|
88
|
+
"targetRoot": { "$ref": "#/$defs/nonEmptyString" },
|
|
89
|
+
"profile": { "$ref": "#/$defs/nullableString" },
|
|
90
|
+
"modules": { "$ref": "#/$defs/jsonArray" },
|
|
91
|
+
"operations": { "$ref": "#/$defs/jsonArray" },
|
|
92
|
+
"installedAt": { "$ref": "#/$defs/nonEmptyString" },
|
|
93
|
+
"sourceVersion": { "$ref": "#/$defs/nullableString" }
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"governanceEvent": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"additionalProperties": false,
|
|
99
|
+
"required": ["id", "sessionId", "eventType", "payload", "resolvedAt", "resolution", "createdAt"],
|
|
100
|
+
"properties": {
|
|
101
|
+
"id": { "$ref": "#/$defs/nonEmptyString" },
|
|
102
|
+
"sessionId": { "$ref": "#/$defs/nullableString" },
|
|
103
|
+
"eventType": { "$ref": "#/$defs/nonEmptyString" },
|
|
104
|
+
"payload": { "$ref": "#/$defs/jsonValue" },
|
|
105
|
+
"resolvedAt": { "$ref": "#/$defs/nullableString" },
|
|
106
|
+
"resolution": { "$ref": "#/$defs/nullableString" },
|
|
107
|
+
"createdAt": { "$ref": "#/$defs/nonEmptyString" }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|