agents-templated 2.2.7 → 2.2.8
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 +2 -0
- package/bin/cli.js +7 -6
- package/lib/instructions.js +6 -6
- package/package.json +1 -1
- package/templates/README.md +1 -0
- package/templates/agents/skills/README.md +1 -0
- package/templates/agents/skills/shadcn-ui/SKILL.md +1932 -0
- package/templates/agents/skills/shadcn-ui/references/chart.md +306 -0
- package/templates/agents/skills/shadcn-ui/references/learn.md +145 -0
- package/templates/agents/skills/shadcn-ui/references/official-ui-reference.md +1729 -0
- package/templates/agents/skills/shadcn-ui/references/reference.md +586 -0
- package/templates/agents/skills/shadcn-ui/references/ui-reference.md +1578 -0
- package/templates/.github/copilot-instructions.md +0 -9
package/README.md
CHANGED
|
@@ -37,6 +37,7 @@ Agents Templated scaffolds your project with:
|
|
|
37
37
|
- `.github/skills/bug-triage/`
|
|
38
38
|
- `.github/skills/error-patterns/`
|
|
39
39
|
- `.github/skills/app-hardening/`
|
|
40
|
+
- `.github/skills/shadcn-ui/`
|
|
40
41
|
- Release and audit contracts now require hardening evidence when risk profile requires it
|
|
41
42
|
|
|
42
43
|
---
|
|
@@ -153,6 +154,7 @@ your-project/
|
|
|
153
154
|
│ │ ├── error-patterns/ # Persistent error-debugging memory workflow
|
|
154
155
|
│ │ ├── app-hardening/ # Hardening and release-evidence workflow
|
|
155
156
|
│ │ ├── ui-ux-pro-max/ # Advanced UI/UX design implementation skill
|
|
157
|
+
│ │ ├── shadcn-ui/ # shadcn/ui setup and component patterns
|
|
156
158
|
│ │ ├── README.md # Guide for creating custom skills
|
|
157
159
|
│ │ └── [your-custom-skills]/ # Your project-specific skills
|
|
158
160
|
│ └── copilot-instructions.md # Compatibility shim for Copilot
|
package/bin/cli.js
CHANGED
|
@@ -383,10 +383,10 @@ program
|
|
|
383
383
|
console.log(chalk.white(' 1. Review CLAUDE.md (canonical AI policy — edit this directly)'));
|
|
384
384
|
console.log(chalk.white(' 2. Review agent-docs/ARCHITECTURE.md for project guidelines'));
|
|
385
385
|
console.log(chalk.white(' 3. AGENTS.MD and .github/copilot-instructions.md are thin pointers to CLAUDE.md'));
|
|
386
|
-
console.log(chalk.white(' 4. Customize
|
|
386
|
+
console.log(chalk.white(' 4. Customize .claude/rules/*.md for your tech stack'));
|
|
387
387
|
|
|
388
388
|
console.log(chalk.cyan('\n🔒 Security Reminder:\n'));
|
|
389
|
-
console.log(chalk.white(' • Review
|
|
389
|
+
console.log(chalk.white(' • Review .claude/rules/security.md'));
|
|
390
390
|
console.log(chalk.white(' • Validate all inputs with schema validation'));
|
|
391
391
|
console.log(chalk.white(' • Implement rate limiting on public endpoints'));
|
|
392
392
|
console.log(chalk.white(' • Never expose sensitive data in errors\n'));
|
|
@@ -836,7 +836,8 @@ program
|
|
|
836
836
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/README.md`, templateFile: 'agents/skills/README.md', component: 'skills' },
|
|
837
837
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/find-skills/SKILL.md`, templateFile: 'agents/skills/find-skills/SKILL.md', component: 'skills' },
|
|
838
838
|
{ targetFile: `${LAYOUT.canonical.skillsDir}/error-patterns/SKILL.md`, templateFile: 'agents/skills/error-patterns/SKILL.md', component: 'skills' },
|
|
839
|
-
{ targetFile: `${LAYOUT.canonical.skillsDir}/ui-ux-pro-max/SKILL.md`, templateFile: 'agents/skills/ui-ux-pro-max/SKILL.md', component: 'skills' }
|
|
839
|
+
{ targetFile: `${LAYOUT.canonical.skillsDir}/ui-ux-pro-max/SKILL.md`, templateFile: 'agents/skills/ui-ux-pro-max/SKILL.md', component: 'skills' },
|
|
840
|
+
{ targetFile: `${LAYOUT.canonical.skillsDir}/shadcn-ui/SKILL.md`, templateFile: 'agents/skills/shadcn-ui/SKILL.md', component: 'skills' }
|
|
840
841
|
];
|
|
841
842
|
|
|
842
843
|
for (const {targetFile, templateFile, component} of checkFiles) {
|
|
@@ -991,7 +992,7 @@ program
|
|
|
991
992
|
console.log(chalk.blue('\n📚 Quick Tips:\n'));
|
|
992
993
|
console.log(chalk.white(' • Run "agents-templated validate" to check setup'));
|
|
993
994
|
console.log(chalk.white(' • Run "agents-templated wizard" for guided setup'));
|
|
994
|
-
console.log(chalk.white(' • Review
|
|
995
|
+
console.log(chalk.white(' • Review .claude/rules/security.md for security patterns\n'));
|
|
995
996
|
|
|
996
997
|
} catch (error) {
|
|
997
998
|
console.error(chalk.red('Error:'), error.message);
|
|
@@ -1001,7 +1002,7 @@ program
|
|
|
1001
1002
|
|
|
1002
1003
|
program
|
|
1003
1004
|
.command('new-skill <name>')
|
|
1004
|
-
.description('Scaffold a new skill in
|
|
1005
|
+
.description('Scaffold a new skill in .github/skills/<name>/SKILL.md')
|
|
1005
1006
|
.action(async (name) => {
|
|
1006
1007
|
try {
|
|
1007
1008
|
const targetDir = process.cwd();
|
|
@@ -1017,7 +1018,7 @@ program
|
|
|
1017
1018
|
|
|
1018
1019
|
program
|
|
1019
1020
|
.command('new-rule <name>')
|
|
1020
|
-
.description('Scaffold a new rule in
|
|
1021
|
+
.description('Scaffold a new rule in .claude/rules/<name>.md')
|
|
1021
1022
|
.action(async (name) => {
|
|
1022
1023
|
try {
|
|
1023
1024
|
const targetDir = process.cwd();
|
package/lib/instructions.js
CHANGED
|
@@ -96,11 +96,11 @@ async function validateInstructionDrift(targetDir) {
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
async function scaffoldSkill(targetDir, skillName) {
|
|
99
|
-
const skillDir = path.join(targetDir, '
|
|
99
|
+
const skillDir = path.join(targetDir, '.github', 'skills', skillName);
|
|
100
100
|
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
101
101
|
|
|
102
102
|
if (await fs.pathExists(skillFile)) {
|
|
103
|
-
throw new Error(`Skill already exists:
|
|
103
|
+
throw new Error(`Skill already exists: .github/skills/${skillName}/SKILL.md`);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
const title = skillName.split('-').map(w => w[0].toUpperCase() + w.slice(1)).join(' ');
|
|
@@ -132,15 +132,15 @@ async function scaffoldSkill(targetDir, skillName) {
|
|
|
132
132
|
|
|
133
133
|
await fs.ensureDir(skillDir);
|
|
134
134
|
await fs.writeFile(skillFile, content, 'utf8');
|
|
135
|
-
return
|
|
135
|
+
return `.github/skills/${skillName}/SKILL.md`;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
async function scaffoldRule(targetDir, ruleName) {
|
|
139
|
-
const rulesDir = path.join(targetDir, '
|
|
139
|
+
const rulesDir = path.join(targetDir, '.claude', 'rules');
|
|
140
140
|
const ruleFile = path.join(rulesDir, `${ruleName}.md`);
|
|
141
141
|
|
|
142
142
|
if (await fs.pathExists(ruleFile)) {
|
|
143
|
-
throw new Error(`Rule already exists:
|
|
143
|
+
throw new Error(`Rule already exists: .claude/rules/${ruleName}.md`);
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
const content = [
|
|
@@ -168,7 +168,7 @@ async function scaffoldRule(targetDir, ruleName) {
|
|
|
168
168
|
|
|
169
169
|
await fs.ensureDir(rulesDir);
|
|
170
170
|
await fs.writeFile(ruleFile, content, 'utf8');
|
|
171
|
-
return
|
|
171
|
+
return `.claude/rules/${ruleName}.md`;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
async function scaffoldSubagent(targetDir, name) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agents-templated",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.8",
|
|
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
|
@@ -129,6 +129,7 @@ your-project/
|
|
|
129
129
|
│ │ ├── find-skills/ # Skill discovery helper
|
|
130
130
|
│ │ ├── error-patterns/ # Persistent error-debugging memory workflow
|
|
131
131
|
│ │ ├── ui-ux-pro-max/ # Advanced UI/UX design implementation skill
|
|
132
|
+
│ │ ├── shadcn-ui/ # shadcn/ui setup and component patterns
|
|
132
133
|
│ │ ├── README.md # Guide for creating custom skills
|
|
133
134
|
│ │ └── [your-custom-skills]/ # Your project-specific skills
|
|
134
135
|
│ └── copilot-instructions.md # Compatibility shim for Copilot
|
|
@@ -100,6 +100,7 @@ Consider creating skills for:
|
|
|
100
100
|
- `bug-triage`: Use for defects and regressions requiring reproducible evidence, root-cause isolation, and minimal safe patches.
|
|
101
101
|
- `error-patterns`: Use when errors repeat to apply known fixes from lessons-learned and automatically record new resolutions.
|
|
102
102
|
- `app-hardening`: Use for high-risk/distributed runtimes to enforce hardening profile, obfuscation decisions, and release evidence.
|
|
103
|
+
- `shadcn-ui`: Use for shadcn/ui installation, component composition, form patterns, and theme customization.
|
|
103
104
|
|
|
104
105
|
## Using Skills in Your Project
|
|
105
106
|
|