@hegemonart/get-design-done 1.19.6 → 1.20.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/marketplace.json +4 -4
- package/.claude-plugin/plugin.json +2 -2
- package/CHANGELOG.md +60 -0
- package/README.md +12 -0
- package/agents/design-reflector.md +13 -0
- package/connections/connections.md +3 -0
- package/connections/figma.md +2 -0
- package/connections/gdd-state.md +186 -0
- package/hooks/budget-enforcer.ts +716 -0
- package/hooks/context-exhaustion.ts +251 -0
- package/hooks/gdd-read-injection-scanner.ts +172 -0
- package/hooks/hooks.json +3 -3
- package/package.json +19 -6
- package/reference/config-schema.md +2 -2
- package/reference/error-recovery.md +58 -0
- package/reference/registry.json +7 -0
- package/reference/schemas/budget.schema.json +42 -0
- package/reference/schemas/events.schema.json +55 -0
- package/reference/schemas/generated.d.ts +419 -0
- package/reference/schemas/iteration-budget.schema.json +36 -0
- package/reference/schemas/mcp-gdd-state-tools.schema.json +89 -0
- package/reference/schemas/rate-limits.schema.json +31 -0
- package/scripts/aggregate-agent-metrics.ts +282 -0
- package/scripts/codegen-schema-types.ts +149 -0
- package/scripts/lib/error-classifier.cjs +232 -0
- package/scripts/lib/error-classifier.d.cts +44 -0
- package/scripts/lib/event-stream/emitter.ts +88 -0
- package/scripts/lib/event-stream/index.ts +154 -0
- package/scripts/lib/event-stream/types.ts +127 -0
- package/scripts/lib/event-stream/writer.ts +154 -0
- package/scripts/lib/gdd-errors/classification.ts +124 -0
- package/scripts/lib/gdd-errors/index.ts +218 -0
- package/scripts/lib/gdd-state/gates.ts +216 -0
- package/scripts/lib/gdd-state/index.ts +167 -0
- package/scripts/lib/gdd-state/lockfile.ts +232 -0
- package/scripts/lib/gdd-state/mutator.ts +574 -0
- package/scripts/lib/gdd-state/parser.ts +523 -0
- package/scripts/lib/gdd-state/types.ts +179 -0
- package/scripts/lib/iteration-budget.cjs +205 -0
- package/scripts/lib/iteration-budget.d.cts +32 -0
- package/scripts/lib/jittered-backoff.cjs +112 -0
- package/scripts/lib/jittered-backoff.d.cts +38 -0
- package/scripts/lib/lockfile.cjs +177 -0
- package/scripts/lib/lockfile.d.cts +21 -0
- package/scripts/lib/prompt-sanitizer/index.ts +435 -0
- package/scripts/lib/prompt-sanitizer/patterns.ts +173 -0
- package/scripts/lib/rate-guard.cjs +365 -0
- package/scripts/lib/rate-guard.d.cts +38 -0
- package/scripts/mcp-servers/gdd-state/schemas/add_blocker.schema.json +67 -0
- package/scripts/mcp-servers/gdd-state/schemas/add_decision.schema.json +68 -0
- package/scripts/mcp-servers/gdd-state/schemas/add_must_have.schema.json +68 -0
- package/scripts/mcp-servers/gdd-state/schemas/checkpoint.schema.json +51 -0
- package/scripts/mcp-servers/gdd-state/schemas/frontmatter_update.schema.json +62 -0
- package/scripts/mcp-servers/gdd-state/schemas/get.schema.json +51 -0
- package/scripts/mcp-servers/gdd-state/schemas/probe_connections.schema.json +75 -0
- package/scripts/mcp-servers/gdd-state/schemas/resolve_blocker.schema.json +66 -0
- package/scripts/mcp-servers/gdd-state/schemas/set_status.schema.json +47 -0
- package/scripts/mcp-servers/gdd-state/schemas/transition_stage.schema.json +70 -0
- package/scripts/mcp-servers/gdd-state/schemas/update_progress.schema.json +58 -0
- package/scripts/mcp-servers/gdd-state/server.ts +288 -0
- package/scripts/mcp-servers/gdd-state/tools/add_blocker.ts +72 -0
- package/scripts/mcp-servers/gdd-state/tools/add_decision.ts +89 -0
- package/scripts/mcp-servers/gdd-state/tools/add_must_have.ts +113 -0
- package/scripts/mcp-servers/gdd-state/tools/checkpoint.ts +60 -0
- package/scripts/mcp-servers/gdd-state/tools/frontmatter_update.ts +91 -0
- package/scripts/mcp-servers/gdd-state/tools/get.ts +51 -0
- package/scripts/mcp-servers/gdd-state/tools/index.ts +51 -0
- package/scripts/mcp-servers/gdd-state/tools/probe_connections.ts +73 -0
- package/scripts/mcp-servers/gdd-state/tools/resolve_blocker.ts +84 -0
- package/scripts/mcp-servers/gdd-state/tools/set_status.ts +54 -0
- package/scripts/mcp-servers/gdd-state/tools/shared.ts +194 -0
- package/scripts/mcp-servers/gdd-state/tools/transition_stage.ts +80 -0
- package/scripts/mcp-servers/gdd-state/tools/update_progress.ts +81 -0
- package/scripts/validate-frontmatter.ts +114 -0
- package/scripts/validate-schemas.ts +401 -0
- package/skills/brief/SKILL.md +15 -6
- package/skills/design/SKILL.md +31 -13
- package/skills/explore/SKILL.md +41 -17
- package/skills/health/SKILL.md +15 -4
- package/skills/optimize/SKILL.md +3 -3
- package/skills/pause/SKILL.md +16 -10
- package/skills/plan/SKILL.md +33 -17
- package/skills/progress/SKILL.md +15 -11
- package/skills/resume/SKILL.md +19 -10
- package/skills/settings/SKILL.md +11 -3
- package/skills/todo/SKILL.md +12 -3
- package/skills/verify/SKILL.md +65 -29
- package/hooks/budget-enforcer.js +0 -329
- package/hooks/context-exhaustion.js +0 -127
- package/hooks/gdd-read-injection-scanner.js +0 -39
- package/scripts/aggregate-agent-metrics.js +0 -173
- package/scripts/validate-frontmatter.cjs +0 -68
- package/scripts/validate-schemas.cjs +0 -242
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/frontmatter_update.schema.json",
|
|
4
|
+
"title": "GddStateFrontmatterUpdate",
|
|
5
|
+
"description": "MCP tool gdd_state__frontmatter_update — patch one or more frontmatter fields. Rejects pipeline_state_version and stage (must use transition_stage). Emits state.mutation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["patch"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"patch": {
|
|
16
|
+
"type": "object",
|
|
17
|
+
"minProperties": 1,
|
|
18
|
+
"additionalProperties": {
|
|
19
|
+
"oneOf": [
|
|
20
|
+
{ "type": "string" },
|
|
21
|
+
{ "type": "number" },
|
|
22
|
+
{ "type": "boolean" }
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"description": "Key/value pairs to merge into frontmatter. Disallowed keys: pipeline_state_version, stage."
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"output": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": ["success"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"success": { "type": "boolean" },
|
|
35
|
+
"data": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": true,
|
|
38
|
+
"properties": {
|
|
39
|
+
"frontmatter": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"description": "The full frontmatter map after patch."
|
|
42
|
+
},
|
|
43
|
+
"keys": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": { "type": "string" }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"error": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"additionalProperties": true,
|
|
52
|
+
"required": ["code", "message", "kind"],
|
|
53
|
+
"properties": {
|
|
54
|
+
"code": { "type": "string" },
|
|
55
|
+
"message": { "type": "string" },
|
|
56
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/get.schema.json",
|
|
4
|
+
"title": "GddStateGet",
|
|
5
|
+
"description": "MCP tool gdd_state__get — read current STATE.md (parsed). Read-only; no event emitted.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"properties": {
|
|
14
|
+
"fields": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"items": { "type": "string", "minLength": 1 },
|
|
17
|
+
"description": "Optional projection. When present, limit data.state to these top-level keys. Unknown keys are ignored (no error)."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"output": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": ["success"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"success": { "type": "boolean" },
|
|
27
|
+
"data": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": true,
|
|
30
|
+
"properties": {
|
|
31
|
+
"state": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"description": "The parsed STATE.md (see scripts/lib/gdd-state/types.ts ParsedState). When fields[] was passed, only the requested keys are present."
|
|
34
|
+
},
|
|
35
|
+
"path": { "type": "string" }
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"error": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": true,
|
|
41
|
+
"required": ["code", "message", "kind"],
|
|
42
|
+
"properties": {
|
|
43
|
+
"code": { "type": "string" },
|
|
44
|
+
"message": { "type": "string" },
|
|
45
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/probe_connections.schema.json",
|
|
4
|
+
"title": "GddStateProbeConnections",
|
|
5
|
+
"description": "MCP tool gdd_state__probe_connections — update <connections> map from probe results. Overwrites keys present in the input; does NOT delete keys not in the input. Emits state.mutation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["probe_results"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"probe_results": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"minItems": 1,
|
|
18
|
+
"items": {
|
|
19
|
+
"type": "object",
|
|
20
|
+
"additionalProperties": false,
|
|
21
|
+
"required": ["name", "status"],
|
|
22
|
+
"properties": {
|
|
23
|
+
"name": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"description": "Connection name (e.g. \"figma\", \"refero\")."
|
|
27
|
+
},
|
|
28
|
+
"status": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["available", "unavailable", "not_configured"]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"output": {
|
|
38
|
+
"type": "object",
|
|
39
|
+
"additionalProperties": false,
|
|
40
|
+
"required": ["success"],
|
|
41
|
+
"properties": {
|
|
42
|
+
"success": { "type": "boolean" },
|
|
43
|
+
"data": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"additionalProperties": true,
|
|
46
|
+
"properties": {
|
|
47
|
+
"updated": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"items": { "type": "string" },
|
|
50
|
+
"description": "Names of connection entries that were written."
|
|
51
|
+
},
|
|
52
|
+
"connections": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Full current <connections> map after update.",
|
|
55
|
+
"additionalProperties": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": ["available", "unavailable", "not_configured"]
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"error": {
|
|
63
|
+
"type": "object",
|
|
64
|
+
"additionalProperties": true,
|
|
65
|
+
"required": ["code", "message", "kind"],
|
|
66
|
+
"properties": {
|
|
67
|
+
"code": { "type": "string" },
|
|
68
|
+
"message": { "type": "string" },
|
|
69
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/resolve_blocker.schema.json",
|
|
4
|
+
"title": "GddStateResolveBlocker",
|
|
5
|
+
"description": "MCP tool gdd_state__resolve_blocker — remove one <blockers> entry by 0-based index or exact text match. Emits state.mutation when a row is removed; returns operation_failed error when no row matches.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"oneOf": [
|
|
14
|
+
{ "required": ["index"] },
|
|
15
|
+
{ "required": ["text"] }
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"index": {
|
|
19
|
+
"type": "integer",
|
|
20
|
+
"minimum": 0,
|
|
21
|
+
"description": "0-based index into the <blockers> list. Mutually exclusive with text."
|
|
22
|
+
},
|
|
23
|
+
"text": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"minLength": 1,
|
|
26
|
+
"description": "Exact text match against blocker.text. First matching row is removed. Mutually exclusive with index."
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"output": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["success"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"success": { "type": "boolean" },
|
|
36
|
+
"data": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"additionalProperties": true,
|
|
39
|
+
"properties": {
|
|
40
|
+
"removed": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["stage", "date", "text"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"stage": { "type": "string" },
|
|
46
|
+
"date": { "type": "string" },
|
|
47
|
+
"text": { "type": "string" }
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"count": { "type": "integer", "minimum": 0 }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"error": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": true,
|
|
56
|
+
"required": ["code", "message", "kind"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"code": { "type": "string" },
|
|
59
|
+
"message": { "type": "string" },
|
|
60
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/set_status.schema.json",
|
|
4
|
+
"title": "GddStateSetStatus",
|
|
5
|
+
"description": "MCP tool gdd_state__set_status — update <position>.status. Emits state.mutation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["status"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"status": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["initialized", "in_progress", "completed", "blocked"]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"output": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false,
|
|
24
|
+
"required": ["success"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"success": { "type": "boolean" },
|
|
27
|
+
"data": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": true,
|
|
30
|
+
"properties": {
|
|
31
|
+
"status": { "type": "string" }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"error": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": true,
|
|
37
|
+
"required": ["code", "message", "kind"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"code": { "type": "string" },
|
|
40
|
+
"message": { "type": "string" },
|
|
41
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/transition_stage.schema.json",
|
|
4
|
+
"title": "GddStateTransitionStage",
|
|
5
|
+
"description": "MCP tool gdd_state__transition_stage — run gate and advance stage on pass. Emits state.transition (pass=true) or state.transition (pass=false with blockers).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"required": ["to"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"to": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": ["brief", "explore", "plan", "design", "verify"],
|
|
18
|
+
"description": "Target stage to advance to. transition() resolves the gate from the current <position>.stage."
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"output": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["success"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"success": { "type": "boolean" },
|
|
28
|
+
"data": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": true,
|
|
31
|
+
"properties": {
|
|
32
|
+
"from": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"description": "Stage we advanced from."
|
|
35
|
+
},
|
|
36
|
+
"to": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": ["brief", "explore", "plan", "design", "verify"]
|
|
39
|
+
},
|
|
40
|
+
"state": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"description": "The updated parsed state after advance."
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"error": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"additionalProperties": true,
|
|
49
|
+
"required": ["code", "message", "kind"],
|
|
50
|
+
"properties": {
|
|
51
|
+
"code": { "type": "string" },
|
|
52
|
+
"message": { "type": "string" },
|
|
53
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] },
|
|
54
|
+
"context": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"additionalProperties": true,
|
|
57
|
+
"properties": {
|
|
58
|
+
"blockers": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": { "type": "string" }
|
|
61
|
+
},
|
|
62
|
+
"toStage": { "type": "string" }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://raw.githubusercontent.com/hegemonart/get-design-done/main/scripts/mcp-servers/gdd-state/schemas/update_progress.schema.json",
|
|
4
|
+
"title": "GddStateUpdateProgress",
|
|
5
|
+
"description": "MCP tool gdd_state__update_progress — update <position> task_progress and/or status. Emits state.mutation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["input", "output"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"input": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"additionalProperties": false,
|
|
13
|
+
"anyOf": [
|
|
14
|
+
{ "required": ["task_progress"] },
|
|
15
|
+
{ "required": ["status"] }
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"task_progress": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"pattern": "^[0-9]+/[0-9]+$",
|
|
21
|
+
"description": "e.g. \"3/7\"."
|
|
22
|
+
},
|
|
23
|
+
"status": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["initialized", "in_progress", "completed", "blocked"]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"output": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": ["success"],
|
|
33
|
+
"properties": {
|
|
34
|
+
"success": { "type": "boolean" },
|
|
35
|
+
"data": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"additionalProperties": true,
|
|
38
|
+
"properties": {
|
|
39
|
+
"position": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"description": "The updated <position> block."
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"error": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"additionalProperties": true,
|
|
48
|
+
"required": ["code", "message", "kind"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"code": { "type": "string" },
|
|
51
|
+
"message": { "type": "string" },
|
|
52
|
+
"kind": { "type": "string", "enum": ["validation", "state_conflict", "operation_failed", "unknown"] }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|