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 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 agents/rules/*.md for your tech stack'));
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 agents/rules/security.md'));
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 agents/rules/security.md for security patterns\n'));
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 agents/skills/<name>/SKILL.md')
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 agents/rules/<name>.md')
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();
@@ -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, 'agents', 'skills', skillName);
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: agents/skills/${skillName}/SKILL.md`);
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 `agents/skills/${skillName}/SKILL.md`;
135
+ return `.github/skills/${skillName}/SKILL.md`;
136
136
  }
137
137
 
138
138
  async function scaffoldRule(targetDir, ruleName) {
139
- const rulesDir = path.join(targetDir, 'agents', 'rules');
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: agents/rules/${ruleName}.md`);
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 `agents/rules/${ruleName}.md`;
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.7",
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": {
@@ -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