agents-templated 2.2.13 → 2.2.15
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/README.md +57 -7
- package/bin/cli.js +27 -18
- package/index.js +2 -2
- package/lib/layout.js +27 -3
- package/lib/workflow.js +2 -2
- package/package.json +1 -1
- package/templates/README.md +3 -4
- package/templates/agents/commands/README.md +5 -4
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://github.com/rickandrew2/agents-templated)
|
|
7
7
|
|
|
8
|
-
> **Agents Templated** is a CLI
|
|
8
|
+
> **Agents Templated** is a technology-agnostic CLI that scaffolds the AI development operating layer around your app: policy rules, deterministic command contracts, reusable skills, and compatibility files for Cursor, GitHub Copilot, Claude, and generic agent hosts. It does not scaffold your product framework. It scaffolds how your team and agents plan, build, test, review, and release.
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -16,12 +16,39 @@ Most starter templates only create files. This package creates operating rules f
|
|
|
16
16
|
You get:
|
|
17
17
|
|
|
18
18
|
- Multi-agent configuration for Cursor, Copilot, Claude, and generic hosts
|
|
19
|
-
- Deterministic command contracts in
|
|
19
|
+
- Deterministic command contracts in `.claude/commands/`
|
|
20
20
|
- Security-first and testing-first rule baselines
|
|
21
21
|
- Reusable skills and optional subagents
|
|
22
22
|
|
|
23
23
|
Important: this package does not install your framework. It installs the operating layer around your framework.
|
|
24
24
|
|
|
25
|
+
## What Agents Templated Actually Is
|
|
26
|
+
|
|
27
|
+
Agents Templated is a project governance and agent-orchestration scaffold.
|
|
28
|
+
|
|
29
|
+
- It installs a canonical AI policy source (`CLAUDE.md`) and compatibility shims (`AGENTS.MD`, `.github/copilot-instructions.md`, `.cursorrules`).
|
|
30
|
+
- It installs deterministic command contracts in `.claude/commands/` for repeatable specialist workflows.
|
|
31
|
+
- It installs reusable skills in `.github/skills/` and optional subagents in `.claude/agents/`.
|
|
32
|
+
- It installs rule modules in `.claude/rules/` for security, testing, planning, workflows, and guardrails.
|
|
33
|
+
- It includes `validate`, `doctor`, `update`, and `workflow` commands to keep scaffolds healthy over time.
|
|
34
|
+
|
|
35
|
+
## Orchestration-First Workflow (Current Model)
|
|
36
|
+
|
|
37
|
+
The current model is orchestration-first: give one objective and let the CLI generate a deterministic multi-phase specialist handoff.
|
|
38
|
+
|
|
39
|
+
- Use `agents-templated orchestrate "<objective>"` to run end-to-end routing.
|
|
40
|
+
- Subagent selection is automatic and policy-driven from `CLAUDE.md`.
|
|
41
|
+
- Mode-locked specialists require explicit mode handling (`qa-specialist`, `performance-specialist`).
|
|
42
|
+
- Security escalation is conditionally mandatory based on trigger conditions.
|
|
43
|
+
- Deprecated specialist aliases are redirected to canonical agents with explicit notices.
|
|
44
|
+
- Orchestration stops on blocked/failed phases and returns structured stop conditions.
|
|
45
|
+
|
|
46
|
+
What it is not:
|
|
47
|
+
|
|
48
|
+
- Not a framework generator.
|
|
49
|
+
- Not a dependency installer for your app stack.
|
|
50
|
+
- Not a replacement for your application architecture.
|
|
51
|
+
|
|
25
52
|
## 30-Second Start
|
|
26
53
|
|
|
27
54
|
### 1. Install setup
|
|
@@ -35,6 +62,7 @@ npx agents-templated@latest wizard
|
|
|
35
62
|
```bash
|
|
36
63
|
agents-templated workflow
|
|
37
64
|
agents-templated problem-map "daily briefing assistant for founders"
|
|
65
|
+
agents-templated orchestrate "build auth API and admin dashboard"
|
|
38
66
|
```
|
|
39
67
|
|
|
40
68
|
### 3. Optional preset bootstrap
|
|
@@ -95,6 +123,7 @@ Your AI assistant will auto-load the configurations and follow enterprise patter
|
|
|
95
123
|
| **Interactive Wizard** | Guided setup with personalized recommendations |
|
|
96
124
|
| **AI Agents Supported** | Cursor, GitHub Copilot, Claude, and generic agents via `AGENTS.MD` |
|
|
97
125
|
| **Deterministic Commands** | Slash-command contracts with strict structured outputs |
|
|
126
|
+
| **Automatic Orchestration** | Objective-to-specialist auto-routing via `orchestrate` with deterministic phase outputs |
|
|
98
127
|
| **Intent-Routing Ready** | Command schema supports `slash-command-auto` mode for agent-side routing policies |
|
|
99
128
|
| **Security-First** | OWASP Top 10 protection patterns built-in |
|
|
100
129
|
| **Hardening Workflow** | Risk-based hardening rules plus verification/release gates |
|
|
@@ -161,10 +190,8 @@ your-project/
|
|
|
161
190
|
│ │ ├── system-workflow.md
|
|
162
191
|
│ │ ├── hardening.md
|
|
163
192
|
│ │ └── lessons-learned.md
|
|
164
|
-
│
|
|
165
|
-
│
|
|
166
|
-
├── agents/ # Deterministic command contracts
|
|
167
|
-
│ └── commands/
|
|
193
|
+
│ ├── agents/ # Optional subagents
|
|
194
|
+
│ └── commands/ # Deterministic command contracts
|
|
168
195
|
│ │ ├── SCHEMA.md # Global slash-command response schema
|
|
169
196
|
│ │ ├── plan.md # /plan contract
|
|
170
197
|
│ │ ├── fix.md # /fix contract
|
|
@@ -224,6 +251,7 @@ agents-templated list
|
|
|
224
251
|
|
|
225
252
|
# Lifecycle workflow and specialist commands
|
|
226
253
|
agents-templated workflow
|
|
254
|
+
agents-templated orchestrate "build auth API and dashboard"
|
|
227
255
|
```
|
|
228
256
|
|
|
229
257
|
### Workflow Commands
|
|
@@ -244,7 +272,29 @@ These commands provide deterministic specialist guidance aligned to the sprint l
|
|
|
244
272
|
| `docs` | Documentation Engineer | Sync docs with shipped behavior |
|
|
245
273
|
| `learn-loop` | Iteration Lead | Capture lessons and next-cycle actions |
|
|
246
274
|
|
|
247
|
-
Each command maps to deterministic contract files in
|
|
275
|
+
Each command maps to deterministic contract files in `.claude/commands/` and uses the schema in `.claude/commands/SCHEMA.md`.
|
|
276
|
+
|
|
277
|
+
### Automatic Orchestration Command
|
|
278
|
+
|
|
279
|
+
Use orchestration when you want the system to chain specialists automatically from one objective.
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# Human-readable orchestration summary
|
|
283
|
+
agents-templated orchestrate "build auth API and dashboard"
|
|
284
|
+
|
|
285
|
+
# Structured output for pipelines and automation
|
|
286
|
+
agents-templated orchestrate "prepare production deployment" --json
|
|
287
|
+
|
|
288
|
+
# Force a specific scenario
|
|
289
|
+
agents-templated orchestrate "ship release candidate" --scenario deployment --json
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Orchestration behavior:
|
|
293
|
+
|
|
294
|
+
- Uses deterministic routing and phase sequencing.
|
|
295
|
+
- Enforces mode-lock constraints for `qa-specialist` and `performance-specialist`.
|
|
296
|
+
- Includes deprecation notices when legacy aliases are routed.
|
|
297
|
+
- Emits structured stop conditions if a phase is blocked or fails.
|
|
248
298
|
|
|
249
299
|
### Deprecated Workflow Aliases
|
|
250
300
|
|
package/bin/cli.js
CHANGED
|
@@ -10,6 +10,7 @@ const {
|
|
|
10
10
|
LAYOUT,
|
|
11
11
|
resolveRulesDir,
|
|
12
12
|
resolveSkillsDir,
|
|
13
|
+
resolveCommandsDir,
|
|
13
14
|
resolveSubagentsDir,
|
|
14
15
|
hasAnyLayout,
|
|
15
16
|
getLegacyMigrationPlan
|
|
@@ -146,7 +147,7 @@ program
|
|
|
146
147
|
{ name: 'Documentation files (agent-docs/)', value: 'docs' },
|
|
147
148
|
{ name: 'Agent rules (.claude/rules/*.md)', value: 'rules' },
|
|
148
149
|
{ name: 'Skills (.github/skills/*)', value: 'skills' },
|
|
149
|
-
{ name: 'Command contracts (
|
|
150
|
+
{ name: 'Command contracts (.claude/commands/*.md)', value: 'commands' },
|
|
150
151
|
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github' },
|
|
151
152
|
{ name: 'Agent subagents (.claude/agents/*.md)', value: 'subagents' }
|
|
152
153
|
],
|
|
@@ -210,10 +211,10 @@ program
|
|
|
210
211
|
// Install deterministic command contracts
|
|
211
212
|
if (installAll || choices.includes('commands')) {
|
|
212
213
|
console.log(chalk.yellow('Installing command contracts...'));
|
|
213
|
-
await fs.ensureDir(path.join(targetDir,
|
|
214
|
+
await fs.ensureDir(path.join(targetDir, LAYOUT.canonical.commandsDir));
|
|
214
215
|
await copyDirectory(
|
|
215
216
|
path.join(templateDir, 'agents', 'commands'),
|
|
216
|
-
path.join(targetDir,
|
|
217
|
+
path.join(targetDir, LAYOUT.canonical.commandsDir),
|
|
217
218
|
options.force
|
|
218
219
|
);
|
|
219
220
|
}
|
|
@@ -291,7 +292,7 @@ program
|
|
|
291
292
|
{ name: 'Documentation (agent-docs/)', value: 'docs' },
|
|
292
293
|
{ name: 'Agent Rules (security, testing, database, etc.)', value: 'rules' },
|
|
293
294
|
{ name: 'Skills (reusable agent capabilities)', value: 'skills' },
|
|
294
|
-
{ name: 'Command contracts (
|
|
295
|
+
{ name: 'Command contracts (.claude/commands/*.md)', value: 'commands' },
|
|
295
296
|
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github' },
|
|
296
297
|
{ name: 'Agent subagents (.claude/agents/*.md)', value: 'subagents' }
|
|
297
298
|
],
|
|
@@ -329,7 +330,7 @@ program
|
|
|
329
330
|
{ name: 'Documentation (agent-docs/)', value: 'docs', checked: true },
|
|
330
331
|
{ name: 'Agent Rules (security, testing, database, etc.)', value: 'rules', checked: true },
|
|
331
332
|
{ name: 'Skills (reusable agent capabilities)', value: 'skills', checked: true },
|
|
332
|
-
{ name: 'Command contracts (
|
|
333
|
+
{ name: 'Command contracts (.claude/commands/*.md)', value: 'commands', checked: true },
|
|
333
334
|
{ name: 'AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)', value: 'github', checked: true },
|
|
334
335
|
{ name: 'Agent subagents (.claude/agents/*.md)', value: 'subagents', checked: true }
|
|
335
336
|
],
|
|
@@ -395,10 +396,10 @@ program
|
|
|
395
396
|
// Install deterministic command contracts
|
|
396
397
|
if (options.commands) {
|
|
397
398
|
console.log(chalk.yellow('Installing command contracts...'));
|
|
398
|
-
await fs.ensureDir(path.join(targetDir,
|
|
399
|
+
await fs.ensureDir(path.join(targetDir, LAYOUT.canonical.commandsDir));
|
|
399
400
|
await copyDirectory(
|
|
400
401
|
path.join(templateDir, 'agents', 'commands'),
|
|
401
|
-
path.join(targetDir,
|
|
402
|
+
path.join(targetDir, LAYOUT.canonical.commandsDir),
|
|
402
403
|
options.force
|
|
403
404
|
);
|
|
404
405
|
}
|
|
@@ -452,7 +453,7 @@ program
|
|
|
452
453
|
console.log(chalk.yellow('docs') + ' - Documentation files (agent-docs/ directory)');
|
|
453
454
|
console.log(chalk.yellow('rules') + ' - Agent rules (.claude/rules/*.md)');
|
|
454
455
|
console.log(chalk.yellow('skills') + ' - Agent skills (.github/skills/*)');
|
|
455
|
-
console.log(chalk.yellow('commands') + ' - Deterministic command contracts (
|
|
456
|
+
console.log(chalk.yellow('commands') + ' - Deterministic command contracts (.claude/commands/*.md)');
|
|
456
457
|
console.log(chalk.yellow('github') + ' - AI Agent instructions (Cursor, Copilot, Claude, Generic AGENTS)');
|
|
457
458
|
console.log(chalk.yellow('subagents') + ' - Agent subagents (.claude/agents/*.md)');
|
|
458
459
|
console.log(chalk.yellow('all') + ' - All components');
|
|
@@ -547,27 +548,35 @@ program
|
|
|
547
548
|
warnings.push(`⚠ ${LAYOUT.canonical.skillsDir} directory missing - run 'agents-templated init --skills'`);
|
|
548
549
|
}
|
|
549
550
|
|
|
550
|
-
const
|
|
551
|
+
const canonicalCommandsDir = path.join(targetDir, LAYOUT.canonical.commandsDir);
|
|
552
|
+
const legacyCommandsDir = path.join(targetDir, LAYOUT.legacy.commandsDirs[0]);
|
|
553
|
+
const commandsDir = path.join(targetDir, resolveCommandsDir(targetDir));
|
|
554
|
+
|
|
555
|
+
if (!(await fs.pathExists(canonicalCommandsDir)) && await fs.pathExists(legacyCommandsDir)) {
|
|
556
|
+
issues.push(`✗ Legacy command contract layout detected at ${LAYOUT.legacy.commandsDirs[0]} - run 'agents-templated update --all' to migrate`);
|
|
557
|
+
}
|
|
558
|
+
|
|
551
559
|
if (await fs.pathExists(commandsDir)) {
|
|
560
|
+
const relativeCommandsDir = path.relative(targetDir, commandsDir) || LAYOUT.canonical.commandsDir;
|
|
552
561
|
for (const contractFile of CONTRACT_FILES) {
|
|
553
562
|
const contractPath = path.join(commandsDir, contractFile);
|
|
554
563
|
if (await fs.pathExists(contractPath)) {
|
|
555
|
-
passed.push(`✓
|
|
564
|
+
passed.push(`✓ ${relativeCommandsDir}/${contractFile} found`);
|
|
556
565
|
} else {
|
|
557
|
-
warnings.push(`⚠
|
|
566
|
+
warnings.push(`⚠ ${relativeCommandsDir}/${contractFile} missing`);
|
|
558
567
|
}
|
|
559
568
|
}
|
|
560
569
|
|
|
561
570
|
for (const contractFile of SPECIALIST_CONTRACT_FILES) {
|
|
562
571
|
const contractPath = path.join(commandsDir, contractFile);
|
|
563
572
|
if (await fs.pathExists(contractPath)) {
|
|
564
|
-
passed.push(`✓
|
|
573
|
+
passed.push(`✓ ${relativeCommandsDir}/${contractFile} found`);
|
|
565
574
|
} else {
|
|
566
|
-
warnings.push(`⚠
|
|
575
|
+
warnings.push(`⚠ ${relativeCommandsDir}/${contractFile} missing`);
|
|
567
576
|
}
|
|
568
577
|
}
|
|
569
578
|
} else {
|
|
570
|
-
warnings.push(`⚠
|
|
579
|
+
warnings.push(`⚠ ${LAYOUT.canonical.commandsDir} directory missing - run 'agents-templated init --commands'`);
|
|
571
580
|
}
|
|
572
581
|
|
|
573
582
|
// Check subagents
|
|
@@ -791,10 +800,10 @@ async function updateSelectedComponents(targetDir, templateDir, selectedComponen
|
|
|
791
800
|
|
|
792
801
|
if (components.includes('commands')) {
|
|
793
802
|
console.log(chalk.yellow('Updating command contracts...'));
|
|
794
|
-
await fs.ensureDir(path.join(targetDir,
|
|
803
|
+
await fs.ensureDir(path.join(targetDir, LAYOUT.canonical.commandsDir));
|
|
795
804
|
await copyDirectory(
|
|
796
805
|
path.join(templateDir, 'agents', 'commands'),
|
|
797
|
-
path.join(targetDir,
|
|
806
|
+
path.join(targetDir, LAYOUT.canonical.commandsDir),
|
|
798
807
|
overwrite
|
|
799
808
|
);
|
|
800
809
|
}
|
|
@@ -935,8 +944,8 @@ program
|
|
|
935
944
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/error-patterns/SKILL.md`, templateFile: 'agents/skills/error-patterns/SKILL.md', component: 'skills' },
|
|
936
945
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/ui-ux-pro-max/SKILL.md`, templateFile: 'agents/skills/ui-ux-pro-max/SKILL.md', component: 'skills' },
|
|
937
946
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/shadcn-ui/SKILL.md`, templateFile: 'agents/skills/shadcn-ui/SKILL.md', component: 'skills' },
|
|
938
|
-
{ targetFile:
|
|
939
|
-
{ targetFile:
|
|
947
|
+
{ targetFile: `${LAYOUT.canonical.commandsDir}/SCHEMA.md`, templateFile: 'agents/commands/SCHEMA.md', component: 'commands' },
|
|
948
|
+
{ targetFile: `${LAYOUT.canonical.commandsDir}/README.md`, templateFile: 'agents/commands/README.md', component: 'commands' }
|
|
940
949
|
];
|
|
941
950
|
|
|
942
951
|
for (const {targetFile, templateFile, component} of checkFiles) {
|
package/index.js
CHANGED
|
@@ -72,10 +72,10 @@ async function install(targetDir, options = {}) {
|
|
|
72
72
|
|
|
73
73
|
// Deterministic command contracts
|
|
74
74
|
if (installAll || options.commands) {
|
|
75
|
-
await fs.ensureDir(path.join(targetDir,
|
|
75
|
+
await fs.ensureDir(path.join(targetDir, LAYOUT.canonical.commandsDir));
|
|
76
76
|
await copyDirectory(
|
|
77
77
|
path.join(templateDir, 'agents', 'commands'),
|
|
78
|
-
path.join(targetDir,
|
|
78
|
+
path.join(targetDir, LAYOUT.canonical.commandsDir),
|
|
79
79
|
options.force
|
|
80
80
|
);
|
|
81
81
|
}
|
package/lib/layout.js
CHANGED
|
@@ -6,11 +6,13 @@ const LAYOUT = {
|
|
|
6
6
|
docsDir: 'agent-docs',
|
|
7
7
|
rulesDir: '.claude/rules',
|
|
8
8
|
skillsDir: '.github/skills',
|
|
9
|
-
subagentsDir: '.claude/agents'
|
|
9
|
+
subagentsDir: '.claude/agents',
|
|
10
|
+
commandsDir: '.claude/commands'
|
|
10
11
|
},
|
|
11
12
|
legacy: {
|
|
12
13
|
rulesDirs: ['agents/rules'],
|
|
13
|
-
skillsDirs: ['agents/skills']
|
|
14
|
+
skillsDirs: ['agents/skills'],
|
|
15
|
+
commandsDirs: ['agents/commands']
|
|
14
16
|
},
|
|
15
17
|
compatible: {
|
|
16
18
|
rulesDirs: [],
|
|
@@ -45,16 +47,26 @@ function resolveSubagentsDir(baseDir) {
|
|
|
45
47
|
return firstExistingPath(baseDir, candidates) || LAYOUT.canonical.subagentsDir;
|
|
46
48
|
}
|
|
47
49
|
|
|
50
|
+
function resolveCommandsDir(baseDir) {
|
|
51
|
+
const candidates = [
|
|
52
|
+
LAYOUT.canonical.commandsDir,
|
|
53
|
+
...LAYOUT.legacy.commandsDirs
|
|
54
|
+
];
|
|
55
|
+
return firstExistingPath(baseDir, candidates) || LAYOUT.canonical.commandsDir;
|
|
56
|
+
}
|
|
57
|
+
|
|
48
58
|
async function hasAnyLayout(baseDir) {
|
|
49
59
|
const checks = [
|
|
50
60
|
path.join(baseDir, LAYOUT.canonical.rulesDir),
|
|
51
61
|
path.join(baseDir, LAYOUT.canonical.skillsDir),
|
|
52
62
|
path.join(baseDir, LAYOUT.canonical.subagentsDir),
|
|
63
|
+
path.join(baseDir, LAYOUT.canonical.commandsDir),
|
|
53
64
|
path.join(baseDir, 'agents', 'subagents'),
|
|
54
65
|
...LAYOUT.compatible.rulesDirs.map((relPath) => path.join(baseDir, relPath)),
|
|
55
66
|
...LAYOUT.compatible.skillsDirs.map((relPath) => path.join(baseDir, relPath)),
|
|
56
67
|
...LAYOUT.legacy.rulesDirs.map((relPath) => path.join(baseDir, relPath)),
|
|
57
|
-
...LAYOUT.legacy.skillsDirs.map((relPath) => path.join(baseDir, relPath))
|
|
68
|
+
...LAYOUT.legacy.skillsDirs.map((relPath) => path.join(baseDir, relPath)),
|
|
69
|
+
...LAYOUT.legacy.commandsDirs.map((relPath) => path.join(baseDir, relPath))
|
|
58
70
|
];
|
|
59
71
|
|
|
60
72
|
for (const checkPath of checks) {
|
|
@@ -91,6 +103,17 @@ async function getLegacyMigrationPlan(baseDir) {
|
|
|
91
103
|
}
|
|
92
104
|
}
|
|
93
105
|
|
|
106
|
+
for (const relPath of LAYOUT.legacy.commandsDirs) {
|
|
107
|
+
const from = path.join(baseDir, relPath);
|
|
108
|
+
if (await fs.pathExists(from)) {
|
|
109
|
+
plan.push({
|
|
110
|
+
type: 'directory',
|
|
111
|
+
source: relPath,
|
|
112
|
+
target: LAYOUT.canonical.commandsDir
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
94
117
|
return plan;
|
|
95
118
|
}
|
|
96
119
|
|
|
@@ -98,6 +121,7 @@ module.exports = {
|
|
|
98
121
|
LAYOUT,
|
|
99
122
|
resolveRulesDir,
|
|
100
123
|
resolveSkillsDir,
|
|
124
|
+
resolveCommandsDir,
|
|
101
125
|
resolveSubagentsDir,
|
|
102
126
|
hasAnyLayout,
|
|
103
127
|
getLegacyMigrationPlan
|
package/lib/workflow.js
CHANGED
|
@@ -542,13 +542,13 @@ function formatWorkflowOutput(workflow, objective) {
|
|
|
542
542
|
` Objective: ${goal}`,
|
|
543
543
|
'',
|
|
544
544
|
'Execution contract',
|
|
545
|
-
` Template file:
|
|
545
|
+
` Template file: .claude/commands/${workflow.contract}`,
|
|
546
546
|
' Mode: deterministic structured output only',
|
|
547
547
|
' Safety: destructive actions require CONFIRM-DESTRUCTIVE:<target>',
|
|
548
548
|
'',
|
|
549
549
|
'Recommended next actions',
|
|
550
550
|
' 1. Ensure command contracts are installed: agents-templated init --commands',
|
|
551
|
-
' 2. Open
|
|
551
|
+
' 2. Open .claude/commands/README.md and follow the contract sections',
|
|
552
552
|
' 3. Use agents-templated workflow to see the full sprint sequence',
|
|
553
553
|
''
|
|
554
554
|
].join('\n');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agents-templated",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.15",
|
|
4
4
|
"description": "Technology-agnostic development template with multi-AI agent support (Cursor, Copilot, VSCode, Gemini), security-first patterns, and comprehensive testing guidelines",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
package/templates/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Most starter templates only create files. This package creates operating rules f
|
|
|
16
16
|
You get:
|
|
17
17
|
|
|
18
18
|
- Multi-agent configuration for Cursor, Copilot, Claude, and generic hosts
|
|
19
|
-
- Deterministic command contracts in
|
|
19
|
+
- Deterministic command contracts in `.claude/commands/`
|
|
20
20
|
- Security-first and testing-first rule baselines
|
|
21
21
|
- Reusable skills and optional subagents
|
|
22
22
|
|
|
@@ -163,8 +163,7 @@ your-project/
|
|
|
163
163
|
│ │ └── lessons-learned.md
|
|
164
164
|
│ └── agents/ # Optional subagents
|
|
165
165
|
│
|
|
166
|
-
├──
|
|
167
|
-
│ └── commands/
|
|
166
|
+
│ ├── commands/ # Deterministic command contracts
|
|
168
167
|
│ │ ├── SCHEMA.md # Global slash-command response schema
|
|
169
168
|
│ │ ├── plan.md # /plan contract
|
|
170
169
|
│ │ ├── fix.md # /fix contract
|
|
@@ -244,7 +243,7 @@ These commands provide deterministic specialist guidance aligned to the sprint l
|
|
|
244
243
|
| `docs` | Documentation Engineer | Sync docs with shipped behavior |
|
|
245
244
|
| `learn-loop` | Iteration Lead | Capture lessons and next-cycle actions |
|
|
246
245
|
|
|
247
|
-
Each command maps to deterministic contract files in
|
|
246
|
+
Each command maps to deterministic contract files in `.claude/commands/` and uses the schema in `.claude/commands/SCHEMA.md`.
|
|
248
247
|
|
|
249
248
|
### Deprecated Workflow Aliases
|
|
250
249
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
This directory is the modular source of truth for slash-command execution contracts.
|
|
4
4
|
|
|
5
5
|
- Global protocol and safety framework: `AGENTS.MD` → `Deterministic Slash Command System Standard`
|
|
6
|
-
- Global response schema:
|
|
6
|
+
- Global response schema: `.claude/commands/SCHEMA.md`
|
|
7
7
|
- Command contracts:
|
|
8
8
|
- `plan.md`
|
|
9
9
|
- `task.md`
|
|
@@ -39,10 +39,11 @@ Execution requirements:
|
|
|
39
39
|
|
|
40
40
|
## Publish Inclusion
|
|
41
41
|
|
|
42
|
-
The npm package
|
|
42
|
+
The npm package scaffolds command contracts into `.claude/commands/`.
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
Template source path in this repository:
|
|
45
|
+
|
|
46
|
+
- `templates/agents/commands/`
|
|
46
47
|
|
|
47
48
|
## Workflow Command Mapping
|
|
48
49
|
|