@devtrack-solution/codesdd 1.2.3 → 1.2.4
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/.sdd/skills/curated/devtrack-api/SKILL.md +98 -12
- package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +5 -3
- package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +12 -0
- package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +61 -5
- package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +15 -3
- package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +1951 -0
- package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +16 -14
- package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +40 -0
- package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +19 -2
- package/.sdd/skills/curated/devtrack-api/references/generated-artifact-invalidation.md +97 -0
- package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +30 -1
- package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +42 -0
- package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +22 -1
- package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +9 -7
- package/README.md +280 -29
- package/dist/applications/sdd/index.d.ts +16 -0
- package/dist/applications/sdd/index.js +16 -0
- package/dist/cli/program.js +180 -11
- package/dist/commands/config.js +197 -10
- package/dist/commands/sdd/execution.js +408 -16
- package/dist/commands/sdd/plugin.js +5 -0
- package/dist/commands/sdd/shared.d.ts +1 -0
- package/dist/commands/sdd/shared.js +10 -0
- package/dist/commands/sdd.js +157 -7
- package/dist/core/cli/command-matrix.d.ts +18 -0
- package/dist/core/cli/command-matrix.js +157 -0
- package/dist/core/cli-command-quality.js +11 -0
- package/dist/core/completions/command-registry.js +45 -0
- package/dist/core/config-schema.d.ts +31 -1
- package/dist/core/config-schema.js +79 -5
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.js +11 -0
- package/dist/core/global-config.d.ts +29 -0
- package/dist/core/init.d.ts +2 -2
- package/dist/core/init.js +13 -14
- package/dist/core/sdd/agent-binding.d.ts +19 -19
- package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
- package/dist/core/sdd/agent-runtime-contract.js +200 -0
- package/dist/core/sdd/allocator-recovery.d.ts +14 -0
- package/dist/core/sdd/allocator-recovery.js +30 -0
- package/dist/core/sdd/allocator-security.d.ts +18 -0
- package/dist/core/sdd/allocator-security.js +36 -0
- package/dist/core/sdd/api-foundation-baseline.d.ts +111 -0
- package/dist/core/sdd/api-foundation-baseline.js +151 -0
- package/dist/core/sdd/api-foundation-parity.d.ts +114 -0
- package/dist/core/sdd/api-foundation-parity.js +131 -0
- package/dist/core/sdd/api-profile-catalog.d.ts +36 -0
- package/dist/core/sdd/api-profile-catalog.js +132 -0
- package/dist/core/sdd/api-profile-dry-run-projection.d.ts +93 -0
- package/dist/core/sdd/api-profile-dry-run-projection.js +370 -0
- package/dist/core/sdd/api-profile-recipes.d.ts +82 -0
- package/dist/core/sdd/api-profile-recipes.js +484 -0
- package/dist/core/sdd/artifact-id-allocator.d.ts +368 -0
- package/dist/core/sdd/artifact-id-allocator.js +510 -0
- package/dist/core/sdd/check.d.ts +52 -1
- package/dist/core/sdd/check.js +326 -11
- package/dist/core/sdd/coordination/coordination-adapters.d.ts +15 -8
- package/dist/core/sdd/coordination/coordination-adapters.js +43 -15
- package/dist/core/sdd/coordination/index.d.ts +1 -0
- package/dist/core/sdd/coordination/index.js +1 -0
- package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
- package/dist/core/sdd/coordination/redis-runtime.js +698 -0
- package/dist/core/sdd/deepagent-contracts.d.ts +99 -5
- package/dist/core/sdd/deepagent-contracts.js +62 -0
- package/dist/core/sdd/deepagents/reversa-subagents.d.ts +3 -3
- package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
- package/dist/core/sdd/default-bootstrap-files.js +14 -10
- package/dist/core/sdd/default-skills.js +115 -9
- package/dist/core/sdd/devtrack-api-appliance.d.ts +42 -1
- package/dist/core/sdd/devtrack-api-appliance.js +159 -32
- package/dist/core/sdd/devtrack-api-architecture.d.ts +16 -0
- package/dist/core/sdd/devtrack-api-architecture.js +86 -0
- package/dist/core/sdd/docs-sync.js +24 -18
- package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
- package/dist/core/sdd/domain/capability-diff.js +200 -0
- package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
- package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
- package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
- package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
- package/dist/core/sdd/enterprise-mutating-command-gate.d.ts +27 -0
- package/dist/core/sdd/enterprise-mutating-command-gate.js +104 -0
- package/dist/core/sdd/enterprise-provenance-gates.d.ts +20 -0
- package/dist/core/sdd/enterprise-provenance-gates.js +63 -0
- package/dist/core/sdd/enterprise-provisioning-policy.d.ts +26 -0
- package/dist/core/sdd/enterprise-provisioning-policy.js +104 -0
- package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
- package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
- package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
- package/dist/core/sdd/foundation-layer-manifest.js +117 -0
- package/dist/core/sdd/governance-schemas.d.ts +2 -2
- package/dist/core/sdd/governance-schemas.js +11 -2
- package/dist/core/sdd/intent-guard.d.ts +22 -0
- package/dist/core/sdd/intent-guard.js +67 -0
- package/dist/core/sdd/json-schema.js +13 -1
- package/dist/core/sdd/legacy-operations.js +169 -5
- package/dist/core/sdd/migrate-workspace.js +39 -0
- package/dist/core/sdd/package-security-gates.d.ts +21 -0
- package/dist/core/sdd/package-security-gates.js +121 -0
- package/dist/core/sdd/package-structure-gate.d.ts +85 -3
- package/dist/core/sdd/package-structure-gate.js +384 -11
- package/dist/core/sdd/parallel-feat-automation.d.ts +185 -7
- package/dist/core/sdd/parallel-feat-automation.js +212 -0
- package/dist/core/sdd/plugin-broker.d.ts +223 -4
- package/dist/core/sdd/plugin-broker.js +10 -0
- package/dist/core/sdd/plugin-cli.d.ts +30 -0
- package/dist/core/sdd/plugin-cli.js +70 -3
- package/dist/core/sdd/plugin-evidence.d.ts +73 -0
- package/dist/core/sdd/plugin-manifest.d.ts +69 -1
- package/dist/core/sdd/plugin-manifest.js +10 -0
- package/dist/core/sdd/plugin-policy-pack.d.ts +1 -1
- package/dist/core/sdd/plugin-policy.js +6 -1
- package/dist/core/sdd/plugin-registry.d.ts +138 -2
- package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
- package/dist/core/sdd/plugin-sdk-contract.js +268 -0
- package/dist/core/sdd/plugin-skill-binding.d.ts +1 -1
- package/dist/core/sdd/quality-validation.d.ts +89 -16
- package/dist/core/sdd/release-readiness.d.ts +68 -0
- package/dist/core/sdd/release-readiness.js +767 -0
- package/dist/core/sdd/reversa-architecture-extractor.d.ts +13 -0
- package/dist/core/sdd/reversa-architecture-extractor.js +89 -0
- package/dist/core/sdd/reversa-artifact-writer.d.ts +18 -0
- package/dist/core/sdd/reversa-artifact-writer.js +40 -0
- package/dist/core/sdd/reversa-command-policy.d.ts +136 -0
- package/dist/core/sdd/reversa-command-policy.js +361 -0
- package/dist/core/sdd/reversa-data-extractor.d.ts +11 -0
- package/dist/core/sdd/reversa-data-extractor.js +73 -0
- package/dist/core/sdd/reversa-equivalence.d.ts +20 -0
- package/dist/core/sdd/reversa-equivalence.js +34 -0
- package/dist/core/sdd/reversa-evidence.d.ts +298 -0
- package/dist/core/sdd/reversa-evidence.js +118 -0
- package/dist/core/sdd/reversa-reconstruction.d.ts +29 -0
- package/dist/core/sdd/reversa-reconstruction.js +32 -0
- package/dist/core/sdd/reversa-rules-extractor.d.ts +12 -0
- package/dist/core/sdd/reversa-rules-extractor.js +86 -0
- package/dist/core/sdd/reversa-source-safety.d.ts +19 -0
- package/dist/core/sdd/reversa-source-safety.js +105 -0
- package/dist/core/sdd/reversa-surface-scout.d.ts +13 -0
- package/dist/core/sdd/reversa-surface-scout.js +85 -0
- package/dist/core/sdd/reversa-ux-mapper.d.ts +11 -0
- package/dist/core/sdd/reversa-ux-mapper.js +73 -0
- package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
- package/dist/core/sdd/runtime-boundary-contract.js +90 -0
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
- package/dist/core/sdd/services/agent-run.service.d.ts +38 -6
- package/dist/core/sdd/services/agent-run.service.js +73 -1
- package/dist/core/sdd/services/archive-quality-coherence.service.d.ts +17 -0
- package/dist/core/sdd/services/archive-quality-coherence.service.js +141 -0
- package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
- package/dist/core/sdd/services/capability-diff.service.js +26 -0
- package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
- package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
- package/dist/core/sdd/services/context.service.d.ts +43 -340
- package/dist/core/sdd/services/context.service.js +323 -9
- package/dist/core/sdd/services/decide.service.js +1 -1
- package/dist/core/sdd/services/finalize.service.d.ts +27 -0
- package/dist/core/sdd/services/finalize.service.js +226 -18
- package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
- package/dist/core/sdd/services/historical-quality-regression.service.d.ts +35 -0
- package/dist/core/sdd/services/historical-quality-regression.service.js +228 -0
- package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
- package/dist/core/sdd/services/planning-execution-coherence.service.d.ts +45 -0
- package/dist/core/sdd/services/planning-execution-coherence.service.js +225 -0
- package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
- package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
- package/dist/core/sdd/state.d.ts +1 -0
- package/dist/core/sdd/state.js +266 -34
- package/dist/core/sdd/store/sdd-stores.js +2 -2
- package/dist/core/sdd/structural-health.d.ts +13 -13
- package/dist/core/sdd/types.d.ts +30 -15
- package/dist/core/sdd/types.js +4 -0
- package/dist/core/sdd/views.js +17 -0
- package/dist/core/sdd/workspace-schemas.d.ts +428 -7
- package/dist/core/sdd/workspace-schemas.js +223 -70
- package/dist/core/shared/skill-generation.d.ts +2 -0
- package/dist/core/shared/skill-generation.js +19 -2
- package/dist/core/shared/tool-detection.d.ts +19 -0
- package/dist/core/shared/tool-detection.js +89 -0
- package/dist/domains/sdd/index.d.ts +6 -0
- package/dist/domains/sdd/index.js +6 -0
- package/dist/infrastructures/sdd/index.d.ts +7 -0
- package/dist/infrastructures/sdd/index.js +6 -0
- package/dist/presentations/cli/sdd/index.d.ts +3 -0
- package/dist/presentations/cli/sdd/index.js +3 -0
- package/dist/shared/sdd/index.d.ts +3 -0
- package/dist/shared/sdd/index.js +2 -0
- package/package.json +14 -10
- package/schemas/sdd/2-plan.schema.json +207 -2
- package/schemas/sdd/5-quality.schema.json +324 -25
- package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
- package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
- package/schemas/sdd/codesdd-plugin.schema.json +171 -0
- package/schemas/sdd/deepagent-run-request.schema.json +316 -0
- package/schemas/sdd/parallel-feat-automation-plan.schema.json +89 -0
- package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
- package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
- package/schemas/sdd/plugin-artifact-manifest.schema.json +109 -0
- package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
- package/schemas/sdd/plugin-evidence-manifest.schema.json +109 -0
- package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
- package/schemas/sdd/plugin-package-governance.schema.json +74 -0
- package/schemas/sdd/plugin-registry.schema.json +171 -0
- package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +109 -0
- package/schemas/sdd/quality-evidence-bundle.schema.json +109 -0
- package/schemas/sdd/reversa-evidence-bundle.schema.json +466 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
- package/schemas/sdd/workspace-catalog.schema.json +5298 -1409
|
@@ -24,8 +24,8 @@ export declare const deepagentEnvContractSchema: z.ZodObject<{
|
|
|
24
24
|
sandbox_passthrough_rules: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
25
25
|
network_mode: z.ZodDefault<z.ZodEnum<{
|
|
26
26
|
disabled: "disabled";
|
|
27
|
-
restricted: "restricted";
|
|
28
27
|
enabled: "enabled";
|
|
28
|
+
restricted: "restricted";
|
|
29
29
|
}>>;
|
|
30
30
|
blocked_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
31
31
|
masked_config_fingerprint: z.ZodString;
|
|
@@ -51,8 +51,8 @@ export declare const deepagentRunRequestSchema: z.ZodObject<{
|
|
|
51
51
|
network_policy: z.ZodObject<{
|
|
52
52
|
mode: z.ZodDefault<z.ZodEnum<{
|
|
53
53
|
disabled: "disabled";
|
|
54
|
-
restricted: "restricted";
|
|
55
54
|
enabled: "enabled";
|
|
55
|
+
restricted: "restricted";
|
|
56
56
|
}>>;
|
|
57
57
|
allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
58
58
|
}, z.core.$strip>;
|
|
@@ -81,8 +81,8 @@ export declare const deepagentRunRequestSchema: z.ZodObject<{
|
|
|
81
81
|
sandbox_passthrough_rules: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
82
82
|
network_mode: z.ZodDefault<z.ZodEnum<{
|
|
83
83
|
disabled: "disabled";
|
|
84
|
-
restricted: "restricted";
|
|
85
84
|
enabled: "enabled";
|
|
85
|
+
restricted: "restricted";
|
|
86
86
|
}>>;
|
|
87
87
|
blocked_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
88
88
|
masked_config_fingerprint: z.ZodString;
|
|
@@ -93,6 +93,100 @@ export declare const deepagentRunRequestSchema: z.ZodObject<{
|
|
|
93
93
|
capability: z.ZodString;
|
|
94
94
|
version: z.ZodString;
|
|
95
95
|
}, z.core.$strip>>>;
|
|
96
|
+
change_safety: z.ZodOptional<z.ZodObject<{
|
|
97
|
+
explicit_modification_intent: z.ZodObject<{
|
|
98
|
+
operation: z.ZodEnum<{
|
|
99
|
+
replace: "replace";
|
|
100
|
+
add: "add";
|
|
101
|
+
modify: "modify";
|
|
102
|
+
remove: "remove";
|
|
103
|
+
refactor: "refactor";
|
|
104
|
+
optimize: "optimize";
|
|
105
|
+
}>;
|
|
106
|
+
}, z.core.$strip>;
|
|
107
|
+
context_lock: z.ZodDefault<z.ZodObject<{
|
|
108
|
+
allowed_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
109
|
+
forbidden_paths: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
110
|
+
protected_core: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
change_budget: z.ZodDefault<z.ZodObject<{
|
|
113
|
+
max_files_changed: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
max_new_files: z.ZodOptional<z.ZodNumber>;
|
|
115
|
+
max_deleted_files: z.ZodOptional<z.ZodNumber>;
|
|
116
|
+
}, z.core.$strip>>;
|
|
117
|
+
governed_override: z.ZodOptional<z.ZodObject<{
|
|
118
|
+
feature_id: z.ZodString;
|
|
119
|
+
intent: z.ZodEnum<{
|
|
120
|
+
replace: "replace";
|
|
121
|
+
add: "add";
|
|
122
|
+
modify: "modify";
|
|
123
|
+
remove: "remove";
|
|
124
|
+
refactor: "refactor";
|
|
125
|
+
optimize: "optimize";
|
|
126
|
+
}>;
|
|
127
|
+
rationale: z.ZodString;
|
|
128
|
+
write_scope: z.ZodArray<z.ZodString>;
|
|
129
|
+
expected_deletions: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
130
|
+
rollback_plan: z.ZodString;
|
|
131
|
+
compensating_control: z.ZodString;
|
|
132
|
+
approver: z.ZodString;
|
|
133
|
+
expires_at: z.ZodString;
|
|
134
|
+
}, z.core.$strip>>;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
planned_file_changes: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
137
|
+
path: z.ZodString;
|
|
138
|
+
operation: z.ZodEnum<{
|
|
139
|
+
replace: "replace";
|
|
140
|
+
rename: "rename";
|
|
141
|
+
create: "create";
|
|
142
|
+
delete: "delete";
|
|
143
|
+
modify: "modify";
|
|
144
|
+
}>;
|
|
145
|
+
previous_path: z.ZodOptional<z.ZodString>;
|
|
146
|
+
}, z.core.$strip>>>;
|
|
147
|
+
capability_inventory_before: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
148
|
+
kind: z.ZodEnum<{
|
|
149
|
+
event: "event";
|
|
150
|
+
schema: "schema";
|
|
151
|
+
page: "page";
|
|
152
|
+
route: "route";
|
|
153
|
+
cli_command: "cli_command";
|
|
154
|
+
public_contract: "public_contract";
|
|
155
|
+
core_flow: "core_flow";
|
|
156
|
+
governance_state: "governance_state";
|
|
157
|
+
}>;
|
|
158
|
+
id: z.ZodString;
|
|
159
|
+
path: z.ZodOptional<z.ZodString>;
|
|
160
|
+
fingerprint: z.ZodOptional<z.ZodString>;
|
|
161
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
162
|
+
}, z.core.$strip>>>;
|
|
163
|
+
capability_inventory_after: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
164
|
+
kind: z.ZodEnum<{
|
|
165
|
+
event: "event";
|
|
166
|
+
schema: "schema";
|
|
167
|
+
page: "page";
|
|
168
|
+
route: "route";
|
|
169
|
+
cli_command: "cli_command";
|
|
170
|
+
public_contract: "public_contract";
|
|
171
|
+
core_flow: "core_flow";
|
|
172
|
+
governance_state: "governance_state";
|
|
173
|
+
}>;
|
|
174
|
+
id: z.ZodString;
|
|
175
|
+
path: z.ZodOptional<z.ZodString>;
|
|
176
|
+
fingerprint: z.ZodOptional<z.ZodString>;
|
|
177
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
178
|
+
}, z.core.$strip>>>;
|
|
179
|
+
capability_inventory_required: z.ZodDefault<z.ZodBoolean>;
|
|
180
|
+
capability_required_kinds: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
181
|
+
event: "event";
|
|
182
|
+
schema: "schema";
|
|
183
|
+
page: "page";
|
|
184
|
+
route: "route";
|
|
185
|
+
cli_command: "cli_command";
|
|
186
|
+
public_contract: "public_contract";
|
|
187
|
+
core_flow: "core_flow";
|
|
188
|
+
governance_state: "governance_state";
|
|
189
|
+
}>>>;
|
|
96
190
|
reversa_scope: z.ZodObject<{
|
|
97
191
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
98
192
|
objective: z.ZodOptional<z.ZodString>;
|
|
@@ -157,8 +251,8 @@ export declare const deepagentToolCallEvidenceSchema: z.ZodObject<{
|
|
|
157
251
|
}>;
|
|
158
252
|
policy_gate: z.ZodString;
|
|
159
253
|
hitl_decision: z.ZodDefault<z.ZodEnum<{
|
|
160
|
-
edit: "edit";
|
|
161
254
|
none: "none";
|
|
255
|
+
edit: "edit";
|
|
162
256
|
approve: "approve";
|
|
163
257
|
reject: "reject";
|
|
164
258
|
respond: "respond";
|
|
@@ -242,8 +336,8 @@ export declare const deepagentRunEvidenceSchema: z.ZodObject<{
|
|
|
242
336
|
completed: "completed";
|
|
243
337
|
blocked: "blocked";
|
|
244
338
|
failed: "failed";
|
|
245
|
-
running: "running";
|
|
246
339
|
allowed: "allowed";
|
|
340
|
+
running: "running";
|
|
247
341
|
}>;
|
|
248
342
|
model_metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
249
343
|
config_fingerprint: z.ZodString;
|
|
@@ -10,6 +10,18 @@ const deepagentModeSchema = z.enum([
|
|
|
10
10
|
const deepagentStatusSchema = z.enum(['allowed', 'blocked', 'running', 'completed', 'failed']);
|
|
11
11
|
const deepagentNetworkModeSchema = z.enum(['disabled', 'restricted', 'enabled']);
|
|
12
12
|
const deepagentRuntimeModeSchema = z.enum(['disabled', 'fake', 'deepagents-js']);
|
|
13
|
+
const changeSafetyOperationSchema = z.enum(['add', 'modify', 'remove', 'replace', 'refactor', 'optimize']);
|
|
14
|
+
const plannedFileOperationSchema = z.enum(['create', 'modify', 'delete', 'rename', 'replace']);
|
|
15
|
+
const capabilityKindSchema = z.enum([
|
|
16
|
+
'route',
|
|
17
|
+
'page',
|
|
18
|
+
'cli_command',
|
|
19
|
+
'public_contract',
|
|
20
|
+
'schema',
|
|
21
|
+
'event',
|
|
22
|
+
'core_flow',
|
|
23
|
+
'governance_state',
|
|
24
|
+
]);
|
|
13
25
|
const deepagentExecutionLimitsSchema = z.object({
|
|
14
26
|
max_iterations: z.number().int().positive().optional(),
|
|
15
27
|
max_subagents: z.number().int().positive().optional(),
|
|
@@ -20,6 +32,50 @@ const deepagentEvidenceRefSchema = z.object({
|
|
|
20
32
|
ref: z.string().min(1),
|
|
21
33
|
path: z.string().min(1).optional(),
|
|
22
34
|
});
|
|
35
|
+
const changeSafetyContractSchema = z.object({
|
|
36
|
+
explicit_modification_intent: z.object({
|
|
37
|
+
operation: changeSafetyOperationSchema,
|
|
38
|
+
}),
|
|
39
|
+
context_lock: z
|
|
40
|
+
.object({
|
|
41
|
+
allowed_paths: z.array(z.string().min(1)).default([]),
|
|
42
|
+
forbidden_paths: z.array(z.string().min(1)).default([]),
|
|
43
|
+
protected_core: z.array(z.string().min(1)).default([]),
|
|
44
|
+
})
|
|
45
|
+
.default({ allowed_paths: [], forbidden_paths: [], protected_core: [] }),
|
|
46
|
+
change_budget: z
|
|
47
|
+
.object({
|
|
48
|
+
max_files_changed: z.number().int().nonnegative().optional(),
|
|
49
|
+
max_new_files: z.number().int().nonnegative().optional(),
|
|
50
|
+
max_deleted_files: z.number().int().nonnegative().optional(),
|
|
51
|
+
})
|
|
52
|
+
.default({}),
|
|
53
|
+
governed_override: z
|
|
54
|
+
.object({
|
|
55
|
+
feature_id: z.string().regex(FEATURE_REF_PATTERN),
|
|
56
|
+
intent: changeSafetyOperationSchema,
|
|
57
|
+
rationale: z.string().min(1),
|
|
58
|
+
write_scope: z.array(z.string().min(1)).min(1),
|
|
59
|
+
expected_deletions: z.array(z.string().min(1)).default([]),
|
|
60
|
+
rollback_plan: z.string().min(1),
|
|
61
|
+
compensating_control: z.string().min(1),
|
|
62
|
+
approver: z.string().min(1),
|
|
63
|
+
expires_at: z.string().datetime(),
|
|
64
|
+
})
|
|
65
|
+
.optional(),
|
|
66
|
+
});
|
|
67
|
+
const plannedFileChangeSchema = z.object({
|
|
68
|
+
path: z.string().min(1),
|
|
69
|
+
operation: plannedFileOperationSchema,
|
|
70
|
+
previous_path: z.string().min(1).optional(),
|
|
71
|
+
});
|
|
72
|
+
const capabilityInventoryItemSchema = z.object({
|
|
73
|
+
kind: capabilityKindSchema,
|
|
74
|
+
id: z.string().min(1),
|
|
75
|
+
path: z.string().min(1).optional(),
|
|
76
|
+
fingerprint: z.string().min(1).optional(),
|
|
77
|
+
metadata: z.record(z.string(), z.unknown()).default({}),
|
|
78
|
+
});
|
|
23
79
|
const deepagentRiskSchema = z.object({
|
|
24
80
|
id: z.string().min(1),
|
|
25
81
|
severity: z.enum(['low', 'medium', 'high', 'critical']),
|
|
@@ -70,6 +126,12 @@ export const deepagentRunRequestSchema = z.object({
|
|
|
70
126
|
version: z.string().min(1),
|
|
71
127
|
}))
|
|
72
128
|
.default([]),
|
|
129
|
+
change_safety: changeSafetyContractSchema.optional(),
|
|
130
|
+
planned_file_changes: z.array(plannedFileChangeSchema).default([]),
|
|
131
|
+
capability_inventory_before: z.array(capabilityInventoryItemSchema).default([]),
|
|
132
|
+
capability_inventory_after: z.array(capabilityInventoryItemSchema).default([]),
|
|
133
|
+
capability_inventory_required: z.boolean().default(false),
|
|
134
|
+
capability_required_kinds: z.array(capabilityKindSchema).default([]),
|
|
73
135
|
reversa_scope: z.object({
|
|
74
136
|
enabled: z.boolean().default(false),
|
|
75
137
|
objective: z.string().min(1).optional(),
|
|
@@ -5,8 +5,8 @@ export declare const reversaDomainSchema: z.ZodEnum<{
|
|
|
5
5
|
rules: "rules";
|
|
6
6
|
data: "data";
|
|
7
7
|
migration: "migration";
|
|
8
|
-
"legacy-analysis": "legacy-analysis";
|
|
9
8
|
screens: "screens";
|
|
9
|
+
"legacy-analysis": "legacy-analysis";
|
|
10
10
|
microservices: "microservices";
|
|
11
11
|
"equivalence-validation": "equivalence-validation";
|
|
12
12
|
}>;
|
|
@@ -18,8 +18,8 @@ export declare const deepAgentsReversaRequestSchema: z.ZodObject<{
|
|
|
18
18
|
rules: "rules";
|
|
19
19
|
data: "data";
|
|
20
20
|
migration: "migration";
|
|
21
|
-
"legacy-analysis": "legacy-analysis";
|
|
22
21
|
screens: "screens";
|
|
22
|
+
"legacy-analysis": "legacy-analysis";
|
|
23
23
|
microservices: "microservices";
|
|
24
24
|
"equivalence-validation": "equivalence-validation";
|
|
25
25
|
}>>>;
|
|
@@ -56,8 +56,8 @@ export declare const deepAgentsReversaPlanSchema: z.ZodObject<{
|
|
|
56
56
|
rules: "rules";
|
|
57
57
|
data: "data";
|
|
58
58
|
migration: "migration";
|
|
59
|
-
"legacy-analysis": "legacy-analysis";
|
|
60
59
|
screens: "screens";
|
|
60
|
+
"legacy-analysis": "legacy-analysis";
|
|
61
61
|
microservices: "microservices";
|
|
62
62
|
"equivalence-validation": "equivalence-validation";
|
|
63
63
|
}>;
|
|
@@ -10,10 +10,10 @@ export interface SddReadmeFolders {
|
|
|
10
10
|
}
|
|
11
11
|
export declare function buildSddInternalReadme(memoryDir?: string, folders?: SddReadmeFolders): string;
|
|
12
12
|
export declare const PROMPTS_README_MD = "# Recommended SDD Prompts\n\nUse these prompts to speed up agent workflows without losing the SDD standard.\n\n## Recommended Order For Raw Material\n1. `00-start-here.md`\n2. `01-source-intake.md`\n3. `02-normalize-planning.md`\n4. `03-feature-execution.md`\n5. `04-finalize-consolidation.md`\n\nRule: prompts guide the agent, but the canonical state remains in `.sdd/state/*.yaml`.\nDo not persist project memory, workflow state, backlog, or handoff in external context stores.\n";
|
|
13
|
-
export declare const PROMPT_00_COMECE_POR_AQUI_MD = "# Start Here (First Use)\n\nIf you have never used CodeSDD, follow this order.\n\n## 1) Install And Initialize The Project\n\nIn the terminal, from your project directory:\n\n```bash\ncodesdd
|
|
13
|
+
export declare const PROMPT_00_COMECE_POR_AQUI_MD = "# Start Here (First Use)\n\nIf you have never used CodeSDD, follow this order.\n\n## 1) Install And Initialize The Project\n\nIn the terminal, from your project directory:\n\n```bash\ncodesdd sdd init-context --frontend --lang en-US --layout en-US\ncodesdd sdd check --render\ncodesdd sdd rebuild --from-disk --dry-run\ncodesdd sdd dedup --apply --dry-run\ncodesdd sdd onboard system\ncodesdd reload --tools none --lang en-US --layout en-US\n```\n\n## 2) Understand The Main Folders\n\n- `.sdd/sources/`: raw material such as PRDs, wireframes, stories, and references.\n- `.sdd/state/`: canonical YAML source of truth.\n- `.sdd/core/`: generated human-readable system overview.\n- `.sdd/planning/`: backlog, progress, and finalize queue.\n- `.sdd/active/`: active FEAT workspaces.\n- `.sdd/archived/`: finalized workspaces.\n\nCodeSDD is the only operational memory for the project. Do not use external context, memory, workflow, backlog, scratchpad, or handoff stores as active project state.\nIn initialized CodeSDD repositories, requests that imply implementation, edits, validation, execution, or finalize implicitly require CodeSDD planning unless explicitly marked read-only or outside CodeSDD.\n\n## 3) I Have PRDs, Wireframes, Or Stories. What Now?\n\n1. Place the files under `.sdd/sources/` in the appropriate subfolders.\n2. Run:\n\n```bash\ncodesdd sdd ingest-deposito --source-dir .sdd/sources --title \"Initial system planning\"\n```\n\n3. Review:\n\n```bash\ncodesdd sdd check --render\ncodesdd sdd next\n```\n\nExpected result:\n- sources indexed in `.sdd/state/source-index.yaml`\n- EPIC created or reused\n- FEATs generated in the backlog\n- first ready FEAT started automatically when possible\n\n## 4) Execute A Feature\n\n```bash\ncodesdd sdd start FEAT-0001 --flow-mode standard\ncodesdd sdd context FEAT-0001\ncodesdd sdd frontend-impact FEAT-0001 --status required --reason \"New route and UI components\"\n```\n\nImplement and update the FEAT package:\n- `1-spec.yaml`\n- `2-plan.yaml`\n- `5-quality.yaml`\n- `3-tasks.yaml`\n- `4-changelog.yaml`\n\n## 5) Finalize Without Losing Context\n\n```bash\ncodesdd sdd finalize --ref FEAT-0001\ncodesdd sdd check --render\ncodesdd sdd onboard system\n```\n\nGolden rule:\n- A FEAT is only truly complete after documentation consolidation.\n\n## 6) Short Usage Story\n\nThe team placed a PRD and a wireframe in `.sdd/sources/`.\nThey ran `codesdd sdd ingest-deposito --source-dir .sdd/sources` and got an EPIC plus ready FEATs.\nThey started the priority FEAT with `codesdd sdd start FEAT-0001`.\nBefore coding, they ran `codesdd sdd context FEAT-0001`.\nAfter implementation, they ran `codesdd sdd finalize --ref FEAT-0001`.\nResult: backlog updated, docs synchronized, and the next FEAT released without guesswork.\n\n## 7) Essential Commands\n\n- `codesdd sdd onboard system`: understand the current state.\n- `codesdd sdd ingest-deposito --source-dir .sdd/sources`: turn raw material into an executable trail.\n- `codesdd sdd rebuild --from-disk --dry-run`: preview state reconciliation from disk artifacts.\n- `codesdd sdd audit --json`: persist an audit snapshot in `.sdd/state/audit-history.yaml`.\n- `codesdd sdd metrics --since 7d`: inspect lead time, aging, and throughput.\n- `codesdd sdd dedup --apply --dry-run`: preview historical warning_links reconciliation.\n- `codesdd sdd lint feature FEAT-0001`: inspect feature scope before execution.\n- `codesdd sdd next`: see what can start now.\n- `codesdd sdd start FEAT-0001`: open feature execution.\n- `codesdd sdd context FEAT-0001`: generate focused context.\n- `codesdd sdd frontend-impact FEAT-0001 --status required|none --reason \"...\"`: declare frontend impact.\n- `codesdd sdd finalize --ref FEAT-0001`: consolidate memory and close.\n";
|
|
14
14
|
export declare const PROMPT_01_INGESTAO_DEPOSITO_MD = "# Prompt: Source Intake\n\nUse the skills:\n- source-intake-sdd\n- business-extractor-sdd\n- frontend-extractor-sdd\n- planning-normalizer-sdd\n\nObjective:\n1. Scan `.sdd/sources/`.\n2. Update `.sdd/state/source-index.yaml`.\n3. Consolidate canonical context (`architecture`, `service-catalog`, `tech-stack`, `integration-contracts`, and frontend when enabled).\n4. Generate an executable trail (EPIC plus FEATs) with source traceability.\n\nRequired output:\n- summary of sources read;\n- IDs created or updated (EPIC/FEAT/FGAP/INS when ambiguity exists);\n- recommended next CLI commands.\n";
|
|
15
15
|
export declare const PROMPT_02_NORMALIZAR_PLANEJAMENTO_MD = "# Prompt: Normalize Planning\n\nObjective:\nTurn consolidated material into an executable plan with clear dependencies.\n\nInstructions:\n1. Start from `.sdd/state/source-index.yaml` and `.sdd/core/*.md`.\n2. Propose EPICs and FEATs with clear English names.\n3. Define dependencies (`blocked_by`) and conflicts (`lock_domains`).\n4. List what can run in parallel.\n5. End with a documentation consolidation checklist per feature.\n";
|
|
16
|
-
export declare const PROMPT_03_EXECUCAO_FEATURE_MD = "# Prompt: Feature Execution\n\nObjective:\nExecute a FEAT without losing traceability.\n\nInstructions:\n1. Run `codesdd sdd context FEAT-0001`.\
|
|
16
|
+
export declare const PROMPT_03_EXECUCAO_FEATURE_MD = "# Prompt: Feature Execution\n\nObjective:\nExecute a FEAT without losing traceability.\n\nInstructions:\n1. Treat implementation, edit, validation, execution, and finalize requests as requiring CodeSDD planning unless the user explicitly marks the request as read-only or outside CodeSDD.\n2. Run `codesdd sdd next` and bind the work to the active or ready FEAT returned by CodeSDD.\n3. Run `codesdd sdd context FEAT-0001`.\n4. Update `.sdd/active/FEAT-0001/` (spec, plan, tasks, changelog).\n5. Implement.\n6. Update `.sdd/active/FEAT-0001/5-quality.yaml` with evidence or a formal exception; quality contracts are blocking by default.\n7. Update affected canonical docs.\n8. Declare frontend impact with `codesdd sdd frontend-impact FEAT-0001 ...`.\n9. Ensure architectural-impact FEATs have an ADR before finalize.\n10. Finish with `codesdd sdd finalize --ref FEAT-0001`.\n";
|
|
17
17
|
export declare const PROMPT_04_CONSOLIDACAO_FINALIZE_MD = "# Prompt: Consolidation And Finalize\n\nObjective:\nClose a feature with complete operational memory.\n\nChecklist:\n1. Review the FEAT technical diff.\n2. Update central documentation (`README.md`, `.sdd/AGENT.md`, `.sdd/core/*.md`, `AGENTS.md`, `AGENT.md`).\n3. Ensure frontend gaps or decisions are recorded when applicable.\n4. Declare frontend impact with `codesdd sdd frontend-impact FEAT-0001 --status required|none --reason \"...\"`.\n5. Run `codesdd sdd check --render`.\n6. Run `codesdd sdd finalize --ref FEAT-0001` and report updated docs.\n";
|
|
18
18
|
export declare const TEMPLATE_1_SPEC_MD = "schema_version: 1\nfeature_id: FEAT-0001\ntitle: Example workspace specification\norigin:\n type: direct\n ref: FEAT-0001\nobjective: This YAML specification records the feature objective with enough detail for agents to understand the expected implementation scope, user or system value, dependencies, and validation intent before source changes begin.\nexpected_outcome: The feature reaches a verifiable done state with its implementation, documentation, and quality evidence synchronized in CodeSDD.\nsystem_impact: The workspace keeps canonical state, generated views, and operational handoff aligned with the implementation.\nacceptance_refs:\n - FEAT-0001\ngates:\n proposta:\n status: rascunho\n planejamento:\n status: rascunho\n tarefas:\n status: rascunho\ncompliance_context:\n jurisdictions:\n - BR-LGPD\n data_classes:\n - personal_data\n source_refs:\n - SRC-0001\n legal_review_required: false\n legal_review_notes: \"\"\ncreated_at: 2026-01-01T00:00:00.000Z\nupdated_at: 2026-01-01T00:00:00.000Z\n";
|
|
19
19
|
export declare const TEMPLATE_2_PLAN_MD: string;
|
|
@@ -25,6 +25,8 @@ This directory stores the project's operational memory.
|
|
|
25
25
|
10. \`${memoryDir}/core/frontend-decisions.md\` (when frontend is enabled)
|
|
26
26
|
|
|
27
27
|
## How To Operate
|
|
28
|
+
CodeSDD is the official planner for initialized repositories. Any request that implies implementation, file edits, validation, execution, or finalize implicitly requires the CodeSDD flow unless the user explicitly marks it as read-only or outside CodeSDD.
|
|
29
|
+
|
|
28
30
|
1. Run \`${CLI_NAME} sdd onboard system\` to understand current state.
|
|
29
31
|
2. Run \`${CLI_NAME} sdd next\` to see what can start now.
|
|
30
32
|
3. Run \`${CLI_NAME} sdd start <FEAT-ID>\` only when the item is not already active.
|
|
@@ -50,6 +52,7 @@ This directory stores the project's operational memory.
|
|
|
50
52
|
- \`state/*.yaml\` is the only canonical operational state for planning, dependencies, blockers, progress, quality, and handoff.
|
|
51
53
|
- \`core/*.md\` and \`${planning}/*.md\` are operational views derived from canonical state.
|
|
52
54
|
- External context, memory, workflow, backlog, scratchpad, or handoff stores are not authoritative.
|
|
55
|
+
- Agent-native plans and other planners may only refine execution after \`${CLI_NAME} sdd next\` and \`${CLI_NAME} sdd context <FEAT-ID>\` bind the request to a CodeSDD FEAT.
|
|
53
56
|
|
|
54
57
|
## Operational Rule
|
|
55
58
|
Every completed feature must update relevant documentation before \`finalize\`.
|
|
@@ -78,8 +81,6 @@ If you have never used CodeSDD, follow this order.
|
|
|
78
81
|
In the terminal, from your project directory:
|
|
79
82
|
|
|
80
83
|
\`\`\`bash
|
|
81
|
-
codesdd install --tools none --lang en-US --layout en-US
|
|
82
|
-
codesdd sdd init --frontend --lang en-US --layout en-US
|
|
83
84
|
codesdd sdd init-context --frontend --lang en-US --layout en-US
|
|
84
85
|
codesdd sdd check --render
|
|
85
86
|
codesdd sdd rebuild --from-disk --dry-run
|
|
@@ -98,6 +99,7 @@ codesdd reload --tools none --lang en-US --layout en-US
|
|
|
98
99
|
- \`.sdd/archived/\`: finalized workspaces.
|
|
99
100
|
|
|
100
101
|
CodeSDD is the only operational memory for the project. Do not use external context, memory, workflow, backlog, scratchpad, or handoff stores as active project state.
|
|
102
|
+
In initialized CodeSDD repositories, requests that imply implementation, edits, validation, execution, or finalize implicitly require CodeSDD planning unless explicitly marked read-only or outside CodeSDD.
|
|
101
103
|
|
|
102
104
|
## 3) I Have PRDs, Wireframes, Or Stories. What Now?
|
|
103
105
|
|
|
@@ -208,14 +210,16 @@ Objective:
|
|
|
208
210
|
Execute a FEAT without losing traceability.
|
|
209
211
|
|
|
210
212
|
Instructions:
|
|
211
|
-
1.
|
|
212
|
-
2.
|
|
213
|
-
3.
|
|
214
|
-
4. Update \`.sdd/active/FEAT-0001
|
|
215
|
-
5.
|
|
216
|
-
6.
|
|
217
|
-
7.
|
|
218
|
-
8.
|
|
213
|
+
1. Treat implementation, edit, validation, execution, and finalize requests as requiring CodeSDD planning unless the user explicitly marks the request as read-only or outside CodeSDD.
|
|
214
|
+
2. Run \`codesdd sdd next\` and bind the work to the active or ready FEAT returned by CodeSDD.
|
|
215
|
+
3. Run \`codesdd sdd context FEAT-0001\`.
|
|
216
|
+
4. Update \`.sdd/active/FEAT-0001/\` (spec, plan, tasks, changelog).
|
|
217
|
+
5. Implement.
|
|
218
|
+
6. Update \`.sdd/active/FEAT-0001/5-quality.yaml\` with evidence or a formal exception; quality contracts are blocking by default.
|
|
219
|
+
7. Update affected canonical docs.
|
|
220
|
+
8. Declare frontend impact with \`codesdd sdd frontend-impact FEAT-0001 ...\`.
|
|
221
|
+
9. Ensure architectural-impact FEATs have an ADR before finalize.
|
|
222
|
+
10. Finish with \`codesdd sdd finalize --ref FEAT-0001\`.
|
|
219
223
|
`;
|
|
220
224
|
export const PROMPT_04_CONSOLIDACAO_FINALIZE_MD = `# Prompt: Consolidation And Finalize
|
|
221
225
|
|
|
@@ -5,11 +5,50 @@ import { fileURLToPath } from 'node:url';
|
|
|
5
5
|
import { CLI_NAME } from '../branding.js';
|
|
6
6
|
import { DEVTRACK_API_APPLIANCE_PLUGIN_ID } from './devtrack-api-appliance.js';
|
|
7
7
|
const DEFAULT_TOOLS = ['codex', 'cursor', 'claude', 'gemini'];
|
|
8
|
+
const DEVTRACK_PORTABLE_TOOLS = ['codex', 'cursor', 'claude', 'gemini', 'kimi', 'opencode'];
|
|
9
|
+
const DEVTRACK_API_DOMAINS = ['architecture', 'backend', 'api', 'nestjs', 'typeorm', 'devtrack', 'foundation'];
|
|
10
|
+
const DEVTRACK_ANGULAR_DOMAINS = [
|
|
11
|
+
'admin',
|
|
12
|
+
'angular-admin',
|
|
13
|
+
'backoffice',
|
|
14
|
+
'operational-ui',
|
|
15
|
+
'dashboard',
|
|
16
|
+
'crud',
|
|
17
|
+
'data-grid',
|
|
18
|
+
'admin-forms',
|
|
19
|
+
'admin-formly',
|
|
20
|
+
'admin-state',
|
|
21
|
+
'ngxs-admin',
|
|
22
|
+
'permissions',
|
|
23
|
+
'reports',
|
|
24
|
+
'workflow',
|
|
25
|
+
'admin-realtime',
|
|
26
|
+
'admin-chat',
|
|
27
|
+
];
|
|
28
|
+
const DEVTRACK_FLUTTER_DOMAINS = [
|
|
29
|
+
'flutter',
|
|
30
|
+
'dart',
|
|
31
|
+
'cross-platform',
|
|
32
|
+
'flutter-ui',
|
|
33
|
+
'flutter-layout',
|
|
34
|
+
'flutter-routing',
|
|
35
|
+
'flutter-l10n',
|
|
36
|
+
'flutter-http',
|
|
37
|
+
'flutter-json',
|
|
38
|
+
'widget-preview',
|
|
39
|
+
'widget-test',
|
|
40
|
+
'integration-test',
|
|
41
|
+
'go-router',
|
|
42
|
+
'arb',
|
|
43
|
+
'l10n',
|
|
44
|
+
];
|
|
8
45
|
const DEFAULT_SOURCE_REPO = 'https://github.com/sickn33/antigravity-awesome-skills';
|
|
9
46
|
const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../');
|
|
10
47
|
const LOCAL_SDD_SKILL_PATHS = {
|
|
11
48
|
'api-clean-flask-langgraph': '.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md',
|
|
12
49
|
'devtrack-api': '.sdd/skills/curated/devtrack-api/SKILL.md',
|
|
50
|
+
'devtrack-angular': '.sdd/skills/curated/devtrack-angular/SKILL.md',
|
|
51
|
+
'devtrack-flutter': '.sdd/skills/curated/devtrack-flutter/SKILL.md',
|
|
13
52
|
'source-intake-sdd': '.sdd/skills/curated/source-intake-sdd/SKILL.md',
|
|
14
53
|
'business-extractor-sdd': '.sdd/skills/curated/business-extractor-sdd/SKILL.md',
|
|
15
54
|
'frontend-extractor-sdd': '.sdd/skills/curated/frontend-extractor-sdd/SKILL.md',
|
|
@@ -34,8 +73,16 @@ const SKILL_METADATA_OVERRIDES = {
|
|
|
34
73
|
description: 'Canonical Python/Flask agentic backend skill with Clean Architecture boundaries, tenant/security authority-source rules, CodeSDD decision support (runtime-safe), production-readiness guidance, and maintainable quality gates.',
|
|
35
74
|
},
|
|
36
75
|
'devtrack-api': {
|
|
37
|
-
title: '
|
|
38
|
-
description: '
|
|
76
|
+
title: 'CodeSDD API Profiles',
|
|
77
|
+
description: 'Compatibility backend engineering and governance skill for CodeSDD API profiles using NestJS, TypeORM, DDD/Clean Architecture boundaries, Swagger/OpenAPI, .env.example, package scripts, route guards, auth/authz planning, application use cases, evidence-based validation, and safe operational delivery.',
|
|
78
|
+
},
|
|
79
|
+
'devtrack-angular': {
|
|
80
|
+
title: 'DevTrack Angular Admin',
|
|
81
|
+
description: 'Portable Angular Admin engineering and governance skill for DevTrack backoffice surfaces using pages-first architecture, standalone components, lazy admin routes, official Angular skills mapping, Formly, NGXS, data grids, permissions, adapters, accessibility, and multi-agent delivery.',
|
|
82
|
+
},
|
|
83
|
+
'devtrack-flutter': {
|
|
84
|
+
title: 'DevTrack Flutter',
|
|
85
|
+
description: 'Portable Flutter/Dart engineering and governance skill for DevTrack apps using layered architecture, MVVM/ViewModels, repositories, services, go_router, ARB/l10n, http, JSON mapping, responsive layout, previews, tests, and multi-agent delivery.',
|
|
39
86
|
},
|
|
40
87
|
};
|
|
41
88
|
const CURATED_BUNDLES = [
|
|
@@ -101,6 +148,8 @@ const CURATED_BUNDLES = [
|
|
|
101
148
|
domains: ['frontend', 'product'],
|
|
102
149
|
phases: ['plan', 'execute', 'verify'],
|
|
103
150
|
skillIds: [
|
|
151
|
+
'devtrack-angular',
|
|
152
|
+
'devtrack-flutter',
|
|
104
153
|
'frontend-design',
|
|
105
154
|
'react-best-practices',
|
|
106
155
|
'react-patterns',
|
|
@@ -214,6 +263,12 @@ function priorityForIndex(index) {
|
|
|
214
263
|
const priority = 10 - index;
|
|
215
264
|
return priority < 6 ? 6 : priority;
|
|
216
265
|
}
|
|
266
|
+
function priorityForSkill(skillId, index) {
|
|
267
|
+
if (skillId === 'devtrack-api' || skillId === 'devtrack-angular' || skillId === 'devtrack-flutter') {
|
|
268
|
+
return 10;
|
|
269
|
+
}
|
|
270
|
+
return priorityForIndex(index);
|
|
271
|
+
}
|
|
217
272
|
export function normalizeSkillManifestContent(content) {
|
|
218
273
|
return content
|
|
219
274
|
.replaceAll('.sdd/deposito', '.sdd/sources')
|
|
@@ -253,11 +308,28 @@ function seedIntegrityHash(entry) {
|
|
|
253
308
|
}
|
|
254
309
|
return computeSkillManifestSha256(fallbackSkillMarkdown(entry));
|
|
255
310
|
}
|
|
311
|
+
function toolsForSkill(skillId) {
|
|
312
|
+
return skillId === 'devtrack-api' || skillId === 'devtrack-angular' || skillId === 'devtrack-flutter'
|
|
313
|
+
? DEVTRACK_PORTABLE_TOOLS
|
|
314
|
+
: DEFAULT_TOOLS;
|
|
315
|
+
}
|
|
316
|
+
function domainsForSkill(bundle, skillId) {
|
|
317
|
+
if (skillId === 'devtrack-api') {
|
|
318
|
+
return DEVTRACK_API_DOMAINS;
|
|
319
|
+
}
|
|
320
|
+
if (skillId === 'devtrack-angular') {
|
|
321
|
+
return DEVTRACK_ANGULAR_DOMAINS;
|
|
322
|
+
}
|
|
323
|
+
if (skillId === 'devtrack-flutter') {
|
|
324
|
+
return DEVTRACK_FLUTTER_DOMAINS;
|
|
325
|
+
}
|
|
326
|
+
return bundle.domains;
|
|
327
|
+
}
|
|
256
328
|
function buildSkillEntry(bundle, skillId, index) {
|
|
257
329
|
const localSourcePath = LOCAL_SDD_SKILL_PATHS[skillId];
|
|
258
330
|
const isLocalSkill = Boolean(localSourcePath);
|
|
259
331
|
const metadata = SKILL_METADATA_OVERRIDES[skillId] || {};
|
|
260
|
-
const sourceRepo = isLocalSkill ? 'local://
|
|
332
|
+
const sourceRepo = isLocalSkill ? 'local://CodeSDD/sdd' : DEFAULT_SOURCE_REPO;
|
|
261
333
|
const sourcePath = isLocalSkill ? localSourcePath : `skills/${skillId}/SKILL.md`;
|
|
262
334
|
const deterministicPair = skillId === 'devtrack-api'
|
|
263
335
|
? { plugin_id: DEVTRACK_API_APPLIANCE_PLUGIN_ID, capability: 'scaffold.project' }
|
|
@@ -271,10 +343,10 @@ function buildSkillEntry(bundle, skillId, index) {
|
|
|
271
343
|
? `Native SDD skill for ${bundle.title.toLowerCase()}.`
|
|
272
344
|
: `Curated skill for ${bundle.title.toLowerCase()} in the SDD flow.`),
|
|
273
345
|
phases: bundle.phases,
|
|
274
|
-
domains: bundle
|
|
275
|
-
tools:
|
|
346
|
+
domains: domainsForSkill(bundle, skillId),
|
|
347
|
+
tools: toolsForSkill(skillId),
|
|
276
348
|
bundle_ids: [bundle.id],
|
|
277
|
-
priority:
|
|
349
|
+
priority: priorityForSkill(skillId, index),
|
|
278
350
|
token_budget: {
|
|
279
351
|
input_max: 12000,
|
|
280
352
|
output_max: 4000,
|
|
@@ -482,8 +554,27 @@ export function buildCuratedBundlesCurationData(layout = 'en-US') {
|
|
|
482
554
|
bundle_id: 'architecture-backend',
|
|
483
555
|
canonical_path: '.sdd/skills/curated/devtrack-api/',
|
|
484
556
|
notes: [
|
|
485
|
-
'Canonical directory for the
|
|
486
|
-
'Operational default: API/backend work
|
|
557
|
+
'Canonical directory for the CodeSDD API profile compatibility skill; includes agents/ and references/.',
|
|
558
|
+
'Operational default: API/backend work selects one of minimal-rest, rest-auth-rbac, rest-crud-typeorm, evented-api, ai-agent-api, or full-foundation-compatible; devtrack-api remains compatibility-only and Python/Flask API work uses api-clean-flask-langgraph.',
|
|
559
|
+
'Tool-level API baseline: Swagger/OpenAPI, .env.example, package scripts with cleanup/cleanup:install and port-safe start/start:dev bootstrap, application use cases, route guards, and auth/authz planning are inferred minimums unless an explicit profile exception is recorded.',
|
|
560
|
+
],
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
skill_id: 'devtrack-angular',
|
|
564
|
+
bundle_id: 'frontend-product',
|
|
565
|
+
canonical_path: '.sdd/skills/curated/devtrack-angular/',
|
|
566
|
+
notes: [
|
|
567
|
+
'Canonical directory for the DevTrack Angular Admin skill; includes agents/ and references/.',
|
|
568
|
+
'Operational default: Angular Admin/backoffice work that names admin pages, dashboards, CRUD, data grids, admin Formly, admin NGXS/state, official Angular framework patterns, permissions, reports, workflow, admin realtime, or admin chat should use devtrack-angular unless an explicit skill/profile overrides it.',
|
|
569
|
+
],
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
skill_id: 'devtrack-flutter',
|
|
573
|
+
bundle_id: 'frontend-product',
|
|
574
|
+
canonical_path: '.sdd/skills/curated/devtrack-flutter/',
|
|
575
|
+
notes: [
|
|
576
|
+
'Canonical directory for the DevTrack Flutter skill; includes agents/ and references/.',
|
|
577
|
+
'Operational default: Flutter/Dart work that names Flutter apps, widgets, routing, localization, responsive layout, JSON, HTTP, previews, widget tests, integration tests, go_router, ARB, or l10n should use devtrack-flutter unless an explicit skill/profile overrides it.',
|
|
487
578
|
],
|
|
488
579
|
},
|
|
489
580
|
];
|
|
@@ -530,7 +621,14 @@ export function buildCuratedBundlesMarkdown() {
|
|
|
530
621
|
lines.push('- Canonical file: `.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md`.');
|
|
531
622
|
lines.push('- `devtrack-api` belongs to bundle `architecture-backend`.');
|
|
532
623
|
lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-api/` (includes `agents/` and `references/`).');
|
|
533
|
-
lines.push('- Operational default: API/backend work
|
|
624
|
+
lines.push('- Operational default: API/backend work selects one of `minimal-rest`, `rest-auth-rbac`, `rest-crud-typeorm`, `evented-api`, `ai-agent-api`, or `full-foundation-compatible`; `devtrack-api` remains compatibility-only and Python/Flask API work uses `api-clean-flask-langgraph`.');
|
|
625
|
+
lines.push('- Tool-level API baseline: Swagger/OpenAPI, `.env.example`, package scripts with `cleanup`/`cleanup:install` and port-safe `start`/`start:dev` bootstrap, application use cases, route guards, and auth/authz planning are inferred minimums unless an explicit profile exception is recorded.');
|
|
626
|
+
lines.push('- `devtrack-angular` belongs to bundle `frontend-product` as the Angular Admin/backoffice skill.');
|
|
627
|
+
lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-angular/` (includes `agents/` and `references/`).');
|
|
628
|
+
lines.push('- Operational default: Angular Admin/backoffice work that names admin pages, dashboards, CRUD, data grids, admin Formly, admin NGXS/state, official Angular framework patterns, permissions, reports, workflow, admin realtime, or admin chat should use `devtrack-angular` unless an explicit skill/profile overrides it.');
|
|
629
|
+
lines.push('- `devtrack-flutter` belongs to bundle `frontend-product` as the Flutter/Dart product skill.');
|
|
630
|
+
lines.push('- Canonical directory: `.sdd/skills/curated/devtrack-flutter/` (includes `agents/` and `references/`).');
|
|
631
|
+
lines.push('- Operational default: Flutter/Dart work that names Flutter apps, widgets, routing, localization, responsive layout, JSON, HTTP, previews, widget tests, integration tests, go_router, ARB, or l10n should use `devtrack-flutter` unless an explicit skill/profile overrides it.');
|
|
534
632
|
lines.push('');
|
|
535
633
|
lines.push('## Canonical Source');
|
|
536
634
|
lines.push('- `.sdd/state/skill-catalog.yaml`');
|
|
@@ -599,5 +697,13 @@ export const BUILT_IN_SDD_SKILLS = {
|
|
|
599
697
|
kind: 'source-tree',
|
|
600
698
|
sourceRoot: '.sdd/skills/curated/devtrack-api',
|
|
601
699
|
},
|
|
700
|
+
'devtrack-angular': {
|
|
701
|
+
kind: 'source-tree',
|
|
702
|
+
sourceRoot: '.sdd/skills/curated/devtrack-angular',
|
|
703
|
+
},
|
|
704
|
+
'devtrack-flutter': {
|
|
705
|
+
kind: 'source-tree',
|
|
706
|
+
sourceRoot: '.sdd/skills/curated/devtrack-flutter',
|
|
707
|
+
},
|
|
602
708
|
};
|
|
603
709
|
//# sourceMappingURL=default-skills.js.map
|
|
@@ -1,21 +1,33 @@
|
|
|
1
1
|
import { type PluginArtifactManifest, type PluginRuntimeInvocationPlan } from './plugin-broker.js';
|
|
2
2
|
import { type PluginManifest } from './plugin-manifest.js';
|
|
3
|
+
import type { PluginArtifactKind, PluginArtifactMapEntry, PluginArtifactRole } from './plugin-sdk-contract.js';
|
|
4
|
+
import { CODESDD_API_PROFILE_FAMILY_ID, type CodeSddApiProfileId, type ResolvedCodeSddApiProfile } from './api-profile-catalog.js';
|
|
5
|
+
import { CODESDD_API_FOUNDATION_SHARED_BASELINE, CODESDD_API_SHARED_BASELINE_QUALITY_GATES, CODESDD_API_SHARED_BASELINE_REQUIREMENTS, type CodeSddApiSharedBaselineRequirement } from './api-foundation-baseline.js';
|
|
6
|
+
import { CODESDD_FULL_FOUNDATION_COMPATIBLE_PROFILE_ID, CODESDD_FULL_FOUNDATION_PARITY_DIMENSIONS, CODESDD_FULL_FOUNDATION_PARITY_MATRIX, CODESDD_FULL_FOUNDATION_PARITY_QUALITY_GATES, type CodeSddFullFoundationParityDimension } from './api-foundation-parity.js';
|
|
7
|
+
import { type CodeSddApiProfileDryRunProjection } from './api-profile-dry-run-projection.js';
|
|
3
8
|
export declare const DEVTRACK_API_APPLIANCE_PLUGIN_ID = "codesdd-plugin-devtrack-api";
|
|
4
9
|
export declare const DEVTRACK_API_APPLIANCE_CAPABILITIES: readonly ["scaffold.project", "generate.domain", "generate.crud", "validate.structure", "evidence.emit"];
|
|
5
10
|
declare const DEVTRACK_API_SCAFFOLD_CAPABILITY = "scaffold.project";
|
|
6
|
-
type DevTrackApiScaffoldLayer = 'root' | 'application' | 'domain' | 'infrastructure' | 'presentation' | 'shared' | 'tests' | 'docs';
|
|
11
|
+
type DevTrackApiScaffoldLayer = 'root' | 'application' | 'domain' | 'infrastructure' | 'presentation' | 'shared' | 'tests' | 'docs' | 'config' | 'sdd' | 'assets';
|
|
7
12
|
export interface DevTrackApiScaffoldArtifact {
|
|
8
13
|
path: string;
|
|
9
14
|
layer: DevTrackApiScaffoldLayer;
|
|
10
15
|
operation: 'planned';
|
|
16
|
+
artifact_kind: PluginArtifactKind;
|
|
17
|
+
role: PluginArtifactRole;
|
|
11
18
|
content_type: string;
|
|
12
19
|
reason: string;
|
|
13
20
|
source_reference: string;
|
|
21
|
+
language?: PluginArtifactMapEntry['language'];
|
|
22
|
+
implementation: PluginArtifactMapEntry['implementation'];
|
|
23
|
+
decision_refs: string[];
|
|
24
|
+
tags: string[];
|
|
14
25
|
}
|
|
15
26
|
export interface DevTrackApiScaffoldDryRunInput {
|
|
16
27
|
feature_ref: string;
|
|
17
28
|
project_name: string;
|
|
18
29
|
package_name?: string;
|
|
30
|
+
api_profile?: string;
|
|
19
31
|
created_at?: string;
|
|
20
32
|
operation_id?: string;
|
|
21
33
|
requested_write_scope?: string[];
|
|
@@ -44,12 +56,41 @@ export interface DevTrackApiScaffoldEvidenceManifest {
|
|
|
44
56
|
status: 'pending';
|
|
45
57
|
}>;
|
|
46
58
|
quality_gates: string[];
|
|
59
|
+
api_profile: {
|
|
60
|
+
family_id: typeof CODESDD_API_PROFILE_FAMILY_ID;
|
|
61
|
+
selected_profile: CodeSddApiProfileId;
|
|
62
|
+
requested_profile?: string;
|
|
63
|
+
legacy_alias: boolean;
|
|
64
|
+
migration_notice?: string;
|
|
65
|
+
inherited_baseline: typeof CODESDD_API_SHARED_BASELINE_REQUIREMENTS;
|
|
66
|
+
};
|
|
67
|
+
profile_projection: CodeSddApiProfileDryRunProjection;
|
|
68
|
+
foundation_baseline: {
|
|
69
|
+
id: typeof CODESDD_API_FOUNDATION_SHARED_BASELINE.id;
|
|
70
|
+
version: typeof CODESDD_API_FOUNDATION_SHARED_BASELINE.version;
|
|
71
|
+
source: typeof CODESDD_API_FOUNDATION_SHARED_BASELINE.foundation_reference;
|
|
72
|
+
requirement_ids: typeof CODESDD_API_SHARED_BASELINE_REQUIREMENTS;
|
|
73
|
+
quality_gates: typeof CODESDD_API_SHARED_BASELINE_QUALITY_GATES;
|
|
74
|
+
requirements: CodeSddApiSharedBaselineRequirement[];
|
|
75
|
+
};
|
|
76
|
+
full_foundation_compatibility?: {
|
|
77
|
+
id: typeof CODESDD_FULL_FOUNDATION_PARITY_MATRIX.id;
|
|
78
|
+
version: typeof CODESDD_FULL_FOUNDATION_PARITY_MATRIX.version;
|
|
79
|
+
profile_id: typeof CODESDD_FULL_FOUNDATION_COMPATIBLE_PROFILE_ID;
|
|
80
|
+
source: typeof CODESDD_FULL_FOUNDATION_PARITY_MATRIX.foundation_reference;
|
|
81
|
+
dimension_ids: typeof CODESDD_FULL_FOUNDATION_PARITY_DIMENSIONS;
|
|
82
|
+
quality_gates: typeof CODESDD_FULL_FOUNDATION_PARITY_QUALITY_GATES;
|
|
83
|
+
dimensions: Array<CodeSddFullFoundationParityDimension & {
|
|
84
|
+
status: 'pending';
|
|
85
|
+
}>;
|
|
86
|
+
};
|
|
47
87
|
}
|
|
48
88
|
export type DevTrackApiScaffoldDryRunPlan = {
|
|
49
89
|
schema_version: 1;
|
|
50
90
|
status: 'planned';
|
|
51
91
|
created_at: string;
|
|
52
92
|
operation_id: string;
|
|
93
|
+
api_profile: ResolvedCodeSddApiProfile;
|
|
53
94
|
project_name: string;
|
|
54
95
|
package_name: string;
|
|
55
96
|
runtime_plan: PluginRuntimeInvocationPlan;
|