@silverassist/agents-toolkit 2.5.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -3
- package/bin/cli.js +6 -5
- package/package.json +1 -1
- package/src/index.js +6 -1
- package/templates/agents/AGENTS.codex.md +2 -0
- package/templates/agents/AGENTS.md +9 -5
- package/templates/shared/instructions/tsdoc-standards.instructions.md +182 -0
- package/templates/shared/prompts/README.md +22 -10
- package/templates/shared/prompts/create-github-pr.prompt.md +47 -3
- package/templates/shared/prompts/finalize-github-pr.prompt.md +7 -1
- package/templates/shared/prompts/resolve-github-reviews.prompt.md +323 -0
- package/templates/shared/skills/README.md +21 -3
- package/templates/shared/skills/ai-seo-optimization/SKILL.md +11 -2
- package/templates/shared/skills/core-review/SKILL.md +251 -0
- package/templates/shared/skills/domain-driven-design/SKILL.md +8 -3
- package/templates/shared/skills/github-review-management/SKILL.md +215 -0
- package/templates/shared/skills/nextjs-caching/SKILL.md +31 -8
- package/templates/shared/skills/release-management/SKILL.md +25 -5
- package/templates/shared/skills/testing-patterns/SKILL.md +38 -0
- package/templates/shared/skills/tsdoc-standards/SKILL.md +225 -0
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ AGENTS.md # Copilot Coding Agent instructions (proje
|
|
|
77
77
|
└── skills/ # Canonical store (single source of truth)
|
|
78
78
|
├── domain-driven-design/
|
|
79
79
|
├── testing-patterns/
|
|
80
|
-
└── ... #
|
|
80
|
+
└── ... # 13 skills total, filtered by --stack
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
> **Skills follow the [`npx skills`](https://github.com/vercel-labs/skills) standard.** The real skill files live once in the canonical `.agents/skills/` store, and each agent's `skills/` directory contains symlinks to it — a single source of truth shared across Copilot, Claude Code, and Codex. Use `--copy` to materialize real copies instead of symlinks (e.g. on Windows without developer mode; symlinks also fall back to copies automatically when unsupported).
|
|
@@ -105,7 +105,7 @@ CLAUDE.md # Project instructions for Claude Code (pr
|
|
|
105
105
|
└── skills/ # Canonical skills store (single source of truth)
|
|
106
106
|
├── domain-driven-design/
|
|
107
107
|
├── testing-patterns/
|
|
108
|
-
└── ... #
|
|
108
|
+
└── ... # 13 skills total, filtered by --stack
|
|
109
109
|
.claude/
|
|
110
110
|
├── commands/
|
|
111
111
|
│ ├── _partials/
|
|
@@ -165,7 +165,7 @@ AGENTS.md # Project instructions for Codex (project
|
|
|
165
165
|
└── skills/ # Canonical store (single source of truth)
|
|
166
166
|
├── domain-driven-design/
|
|
167
167
|
├── testing-patterns/
|
|
168
|
-
└── ... #
|
|
168
|
+
└── ... # 13 skills total, filtered by --stack
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
### Global Install (Optional)
|
|
@@ -240,6 +240,11 @@ The same set of prompts is available for all supported tools.
|
|
|
240
240
|
| `review-code` | Quick code review | — |
|
|
241
241
|
| `fix-issues` | Fix lint/type/test errors | — |
|
|
242
242
|
| `add-tests` | Add tests for components | `{target-file}` |
|
|
243
|
+
| `audit-ai-seo` | Audit a page for AI Search / agent-friendliness (E-E-A-T, semantic HTML, JSON-LD) | `{target-url}` |
|
|
244
|
+
| `new-wp-component` | Scaffold a new component in a Silver Assist WordPress plugin | `{component-name}` |
|
|
245
|
+
| `new-wp-plugin` | Scaffold a new Silver Assist WordPress plugin from scratch | `{plugin-name}` |
|
|
246
|
+
| `quality-check` | Run the full quality pipeline (PHPCS, PHPStan level 8, PHPUnit) for a WP plugin | — |
|
|
247
|
+
| `resolve-github-reviews` | Fetch, reply to, resolve & close PR review threads (Copilot/human) | `{pr-number}`, `{repo}` |
|
|
243
248
|
|
|
244
249
|
### Workflow Stages
|
|
245
250
|
|
|
@@ -427,12 +432,18 @@ File-type specific guidelines applied automatically by Copilot and available as
|
|
|
427
432
|
| Instruction | Applies To | Description |
|
|
428
433
|
|-------------|------------|-------------|
|
|
429
434
|
| `typescript.instructions.md` | `*.ts, *.tsx` | TypeScript best practices |
|
|
435
|
+
| `tsdoc-standards.instructions.md` | `*.ts, *.tsx` | TSDoc (not JSDoc) doc-comment standard: allowed tags, forbidden JSDoc patterns, templates |
|
|
430
436
|
| `react-components.instructions.md` | `*.tsx` | React component patterns |
|
|
431
437
|
| `server-actions.instructions.md` | `**/actions/*.ts` | Next.js Server Actions |
|
|
432
438
|
| `tests.instructions.md` | `*.test.ts, *.test.tsx` | Testing patterns |
|
|
439
|
+
| `testing-standards.instructions.md` | `tests/**/*.php` | PHPUnit testing standards for Silver Assist WordPress plugins |
|
|
433
440
|
| `css-styling.instructions.md` | `*.css, *.tsx` | Tailwind CSS & shadcn/ui standards |
|
|
434
441
|
| `caching.instructions.md` | `next.config.*, src/proxy.ts, src/lib/**, **/route.ts, **/page.tsx` | Next.js caching: read-vs-mutation fetch caching, ISR tiers, CDN invalidation |
|
|
435
442
|
| `seo-ai-optimization.instructions.md` | `*.tsx` | Semantic HTML, accessibility tree, metadata, JSON-LD & E-E-A-T for AI Search |
|
|
443
|
+
| `documentation-language.instructions.md` | `**` | English-only technical content, documentation, commit and PR conventions |
|
|
444
|
+
| `github-workflow.instructions.md` | `**` | GitHub workflow: branch management, PRs, issues, releases, `gh` CLI |
|
|
445
|
+
| `php-standards.instructions.md` | `*.php` | PHP coding standards, WordPress conventions, security, type safety, i18n |
|
|
446
|
+
| `wordpress-plugin-architecture.instructions.md` | `*.php` | WordPress plugin architecture: LoadableInterface, PSR-4, MVC, singleton |
|
|
436
447
|
|
|
437
448
|
## Skills
|
|
438
449
|
|
|
@@ -440,10 +451,19 @@ Specialized knowledge guides for domain-specific patterns:
|
|
|
440
451
|
|
|
441
452
|
| Skill | Description |
|
|
442
453
|
|-------|-------------|
|
|
454
|
+
| `ai-seo-optimization` | Optimize sites for Google generative AI features, agent-friendly HTML, E-E-A-T |
|
|
443
455
|
| `component-architecture` | React component patterns, folder structure, naming conventions |
|
|
456
|
+
| `core-review` | Whole-repo pre-review (before a PR / before pushing review fixes) run as a read-only pass — inline on Copilot/Codex, optionally a subagent on Claude Code — to preempt Copilot iterations |
|
|
457
|
+
| `create-component` | Scaffold a new component in a Silver Assist WordPress plugin (LoadableInterface) |
|
|
444
458
|
| `domain-driven-design` | DDD principles, domain organization, barrel exports |
|
|
459
|
+
| `github-review-management` | Fetch, reply to, resolve & close GitHub PR review threads via `gh` CLI + GraphQL (backs `resolve-github-reviews`) |
|
|
445
460
|
| `nextjs-caching` | Next.js caching strategy: read-vs-mutation fetch, ISR tiers, CDN invalidation, diagnosing dynamic-render leaks |
|
|
461
|
+
| `plugin-creation` | Scaffold a new Silver Assist WordPress plugin from scratch (PSR-4, LoadableInterface, CI/CD) |
|
|
462
|
+
| `quality-checks` | Run PHPCS, PHPStan (level 8), and PHPUnit for Silver Assist WordPress plugins |
|
|
463
|
+
| `release-management` | Create and manage releases for Silver Assist WordPress plugins (unified build + GH Actions) |
|
|
464
|
+
| `testing` | Write and run PHPUnit tests for Silver Assist WordPress plugins (`WP_UnitTestCase`) |
|
|
446
465
|
| `testing-patterns` | Jest + RTL patterns for Next.js 15 and Server Actions |
|
|
466
|
+
| `tsdoc-standards` | Write & enforce TSDoc (not JSDoc): allowed tags, forbidden JSDoc patterns, templates, review checklist |
|
|
447
467
|
|
|
448
468
|
Skills follow the [`npx skills`](https://github.com/vercel-labs/skills) standard: the real files live once in the canonical `.agents/skills/` store, and each agent's `skills/` directory symlinks to it (single source of truth, easy updates). Pass `--copy` to materialize real copies instead.
|
|
449
469
|
|
package/bin/cli.js
CHANGED
|
@@ -51,7 +51,7 @@ const DEFAULT_CONFIG = {
|
|
|
51
51
|
*/
|
|
52
52
|
const FILE_CATEGORIES = {
|
|
53
53
|
instructions: {
|
|
54
|
-
react: ['caching', 'css-styling', 'react-components', 'seo-ai-optimization', 'server-actions', 'tests', 'typescript'],
|
|
54
|
+
react: ['caching', 'css-styling', 'react-components', 'seo-ai-optimization', 'server-actions', 'tests', 'tsdoc-standards', 'typescript'],
|
|
55
55
|
wordpress: ['php-standards', 'wordpress-plugin-architecture', 'testing-standards'],
|
|
56
56
|
universal: ['documentation-language', 'github-workflow'],
|
|
57
57
|
},
|
|
@@ -61,11 +61,11 @@ const FILE_CATEGORIES = {
|
|
|
61
61
|
universal: [
|
|
62
62
|
'analyze-ticket', 'work-ticket', 'analyze-github-issue', 'work-github-issue',
|
|
63
63
|
'create-plan', 'create-pr', 'prepare-pr', 'finalize-pr',
|
|
64
|
-
'create-github-pr', 'finalize-github-pr',
|
|
64
|
+
'create-github-pr', 'finalize-github-pr', 'resolve-github-reviews',
|
|
65
65
|
'review-code', 'fix-issues', 'add-tests', 'prepare-github-release',
|
|
66
66
|
],
|
|
67
67
|
jira: ['analyze-ticket', 'work-ticket', 'create-pr', 'finalize-pr'],
|
|
68
|
-
github: ['analyze-github-issue', 'work-github-issue', 'create-github-pr', 'finalize-github-pr'],
|
|
68
|
+
github: ['analyze-github-issue', 'work-github-issue', 'create-github-pr', 'finalize-github-pr', 'resolve-github-reviews'],
|
|
69
69
|
},
|
|
70
70
|
partials: {
|
|
71
71
|
react: ['release-node'],
|
|
@@ -75,9 +75,10 @@ const FILE_CATEGORIES = {
|
|
|
75
75
|
universal: ['git-operations', 'pr-template', 'validations', 'documentation'],
|
|
76
76
|
},
|
|
77
77
|
skills: {
|
|
78
|
-
react: ['component-architecture', 'nextjs-caching', 'testing-patterns'],
|
|
78
|
+
react: ['component-architecture', 'nextjs-caching', 'testing-patterns', 'tsdoc-standards'],
|
|
79
79
|
wordpress: ['create-component', 'plugin-creation', 'quality-checks', 'testing'],
|
|
80
|
-
|
|
80
|
+
github: ['github-review-management', 'core-review'],
|
|
81
|
+
universal: ['domain-driven-design', 'release-management', 'github-review-management', 'core-review'],
|
|
81
82
|
},
|
|
82
83
|
};
|
|
83
84
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silverassist/agents-toolkit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Reusable AI agent prompts for development workflows with Jira integration — supports GitHub Copilot, Claude Code, and Codex",
|
|
5
5
|
"author": "Santiago Ramirez",
|
|
6
6
|
"license": "PolyForm-Noncommercial-1.0.0",
|
package/src/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @module @silverassist/agents-toolkit
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export const VERSION = "2.
|
|
6
|
+
export const VERSION = "2.6.0";
|
|
7
7
|
|
|
8
8
|
export const PROMPTS = {
|
|
9
9
|
workflow: [
|
|
@@ -26,6 +26,7 @@ export const PROMPTS = {
|
|
|
26
26
|
"new-wp-component",
|
|
27
27
|
"new-wp-plugin",
|
|
28
28
|
"quality-check",
|
|
29
|
+
"resolve-github-reviews",
|
|
29
30
|
"review-code",
|
|
30
31
|
],
|
|
31
32
|
};
|
|
@@ -52,6 +53,7 @@ export const INSTRUCTIONS = [
|
|
|
52
53
|
"server-actions",
|
|
53
54
|
"testing-standards",
|
|
54
55
|
"tests",
|
|
56
|
+
"tsdoc-standards",
|
|
55
57
|
"typescript",
|
|
56
58
|
"wordpress-plugin-architecture",
|
|
57
59
|
];
|
|
@@ -59,14 +61,17 @@ export const INSTRUCTIONS = [
|
|
|
59
61
|
export const SKILLS = [
|
|
60
62
|
"ai-seo-optimization",
|
|
61
63
|
"component-architecture",
|
|
64
|
+
"core-review",
|
|
62
65
|
"create-component",
|
|
63
66
|
"domain-driven-design",
|
|
67
|
+
"github-review-management",
|
|
64
68
|
"nextjs-caching",
|
|
65
69
|
"plugin-creation",
|
|
66
70
|
"quality-checks",
|
|
67
71
|
"release-management",
|
|
68
72
|
"testing",
|
|
69
73
|
"testing-patterns",
|
|
74
|
+
"tsdoc-standards",
|
|
70
75
|
];
|
|
71
76
|
|
|
72
77
|
export const HOOKS = ["validate-tsx", "lint-format"];
|
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
|
|
25
25
|
[Skills]|root:.github/skills
|
|
26
26
|
|component-architecture/SKILL.md → Component design patterns
|
|
27
|
+
|core-review/SKILL.md → Whole-repo pre-review (inline read-only pass) to preempt Copilot iterations
|
|
27
28
|
|domain-driven-design/SKILL.md → DDD principles and structure
|
|
29
|
+
|github-review-management/SKILL.md → Resolve GitHub PR review threads (gh + GraphQL)
|
|
28
30
|
|testing-patterns/SKILL.md → Testing strategies and patterns
|
|
29
31
|
```
|
|
30
32
|
|
|
@@ -19,15 +19,19 @@
|
|
|
19
19
|
|seo-ai-optimization.instructions.md → Semantic HTML, a11y tree, metadata, JSON-LD for AI Search
|
|
20
20
|
|server-actions.instructions.md → Server action patterns, validation, error handling
|
|
21
21
|
|tests.instructions.md → Test structure, mocking, assertions
|
|
22
|
-
|
|
|
22
|
+
|tsdoc-standards.instructions.md → TSDoc doc comments (not JSDoc): allowed tags, forbidden patterns, templates
|
|
23
|
+
|typescript.instructions.md → Type safety, destructuring, doc comments
|
|
23
24
|
|
|
24
25
|
[Prompts]|root:.github/prompts
|
|
25
|
-
|add-tests,analyze-ticket,create-plan,create-pr,finalize-pr,fix-issues,prepare-pr,review-code,work-ticket
|
|
26
|
+
|add-tests,analyze-ticket,create-plan,create-pr,finalize-pr,fix-issues,prepare-pr,resolve-github-reviews,review-code,work-ticket
|
|
26
27
|
|
|
27
28
|
[Skills]|root:.github/skills
|
|
28
|
-
|component-architecture/SKILL.md
|
|
29
|
-
|
|
|
30
|
-
|
|
|
29
|
+
|component-architecture/SKILL.md → Component design patterns
|
|
30
|
+
|core-review/SKILL.md → Whole-repo pre-review (read-only pass, inline on Copilot) to preempt Copilot iterations
|
|
31
|
+
|domain-driven-design/SKILL.md → DDD principles and structure
|
|
32
|
+
|github-review-management/SKILL.md → Resolve GitHub PR review threads (gh + GraphQL)
|
|
33
|
+
|testing-patterns/SKILL.md → Testing strategies and patterns
|
|
34
|
+
|tsdoc-standards/SKILL.md → TSDoc doc comments (not JSDoc)
|
|
31
35
|
```
|
|
32
36
|
|
|
33
37
|
---
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: TSDoc documentation standard (not JSDoc) for TypeScript — allowed tags, forbidden JSDoc patterns, and comment templates
|
|
3
|
+
name: TSDoc Standards
|
|
4
|
+
applyTo: "**/*.{ts,tsx}"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# TSDoc Standards
|
|
8
|
+
|
|
9
|
+
All documentation comments in this project follow the **TSDoc** standard (not JSDoc).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Rules
|
|
14
|
+
|
|
15
|
+
### 1. No type annotations in `@param` or `@returns`
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
// ❌ JSDoc style — FORBIDDEN
|
|
19
|
+
/** @param {string} name - The user's name */
|
|
20
|
+
/** @returns {boolean} True if valid */
|
|
21
|
+
|
|
22
|
+
// ✅ TSDoc style — CORRECT
|
|
23
|
+
/** @param name - The user's name */
|
|
24
|
+
/** @returns True if valid */
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 2. Use `@typeParam` for generics (not `@template`)
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
// ❌ FORBIDDEN
|
|
31
|
+
/** @template T - The item type */
|
|
32
|
+
|
|
33
|
+
// ✅ CORRECT
|
|
34
|
+
/** @typeParam T - The item type */
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Use `@packageDocumentation` for file headers (not `@module`)
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
// ❌ FORBIDDEN
|
|
41
|
+
/** @module lib/ccds/client */
|
|
42
|
+
|
|
43
|
+
// ✅ CORRECT
|
|
44
|
+
/**
|
|
45
|
+
* @packageDocumentation
|
|
46
|
+
* Base client for making requests to the CCDS API.
|
|
47
|
+
*/
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 4. Document interface members inline (not `@property`)
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// ❌ FORBIDDEN
|
|
54
|
+
/**
|
|
55
|
+
* @property {string} name - The community name
|
|
56
|
+
* @property {string} city - The city
|
|
57
|
+
*/
|
|
58
|
+
interface Community { name: string; city: string; }
|
|
59
|
+
|
|
60
|
+
// ✅ CORRECT
|
|
61
|
+
interface Community {
|
|
62
|
+
/** The community name. */
|
|
63
|
+
name: string;
|
|
64
|
+
/** The city where the community is located. */
|
|
65
|
+
city: string;
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Allowed TSDoc Tags
|
|
72
|
+
|
|
73
|
+
| Tag | Format | Usage |
|
|
74
|
+
|-----|--------|-------|
|
|
75
|
+
| `@param` | `@param name - Description` | Function parameter (hyphen required) |
|
|
76
|
+
| `@returns` | `@returns Description` | Return value (no type braces) |
|
|
77
|
+
| `@remarks` | Block | Extended description, side effects |
|
|
78
|
+
| `@example` | Block | Code example with fenced ` ```typescript ``` ` |
|
|
79
|
+
| `@throws` | Block | Documented exceptions |
|
|
80
|
+
| `@see` | Block | References to other symbols or URLs |
|
|
81
|
+
| `@deprecated` | Block | Mark deprecated with migration guidance |
|
|
82
|
+
| `@defaultValue` | Block | Default value of a property |
|
|
83
|
+
| `@typeParam` | `@typeParam T - Description` | Generic type parameter |
|
|
84
|
+
| `@packageDocumentation` | Modifier | Module-level doc (first comment in file) |
|
|
85
|
+
| `{@link symbol}` | Inline | Hyperlink to a symbol |
|
|
86
|
+
|
|
87
|
+
> **Note:** `@param` and `@returns` are optional — add them when they genuinely add clarity
|
|
88
|
+
> (e.g., non-obvious parameters, complex return shapes). Do NOT add them to interfaces,
|
|
89
|
+
> types, or constants.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Comment Patterns
|
|
94
|
+
|
|
95
|
+
### Server Action
|
|
96
|
+
|
|
97
|
+
````typescript
|
|
98
|
+
/**
|
|
99
|
+
* Submits the contact form and sends a notification email.
|
|
100
|
+
*
|
|
101
|
+
* @remarks
|
|
102
|
+
* Validates server-side, creates a DB record, dispatches email.
|
|
103
|
+
*
|
|
104
|
+
* @param formData - Submitted form data from the contact page
|
|
105
|
+
*
|
|
106
|
+
* @throws When the email service is unavailable
|
|
107
|
+
*/
|
|
108
|
+
export async function submitContactForm(formData: FormData): Promise<void> {}
|
|
109
|
+
````
|
|
110
|
+
|
|
111
|
+
### React Component
|
|
112
|
+
|
|
113
|
+
````typescript
|
|
114
|
+
/**
|
|
115
|
+
* Renders a responsive community card with name and location.
|
|
116
|
+
*
|
|
117
|
+
* @returns The community card JSX element
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```tsx
|
|
121
|
+
* <CommunityCard community={community} className="mt-4" />
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export function CommunityCard({ community, className }: CommunityCardProps) {
|
|
125
|
+
return <article className={className}>{community.name}</article>;
|
|
126
|
+
}
|
|
127
|
+
````
|
|
128
|
+
|
|
129
|
+
### Utility Function
|
|
130
|
+
|
|
131
|
+
````typescript
|
|
132
|
+
/**
|
|
133
|
+
* Formats a date string for display.
|
|
134
|
+
*
|
|
135
|
+
* @param dateString - ISO 8601 date string
|
|
136
|
+
* @returns Human-readable date (e.g., "January 15, 2025")
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* formatDate("2025-01-15"); // "January 15, 2025"
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export function formatDate(dateString: string): string {
|
|
144
|
+
return new Date(dateString).toLocaleDateString("en-US", { dateStyle: "long" });
|
|
145
|
+
}
|
|
146
|
+
````
|
|
147
|
+
|
|
148
|
+
### File Header
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
/**
|
|
152
|
+
* @packageDocumentation
|
|
153
|
+
* CCDS geo-search utilities for state, city, and community lookups.
|
|
154
|
+
*/
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Forbidden Patterns
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
// ❌ Type braces in @param
|
|
163
|
+
/** @param {string} name - Description */
|
|
164
|
+
|
|
165
|
+
// ❌ Type braces in @returns
|
|
166
|
+
/** @returns {boolean} True if valid */
|
|
167
|
+
|
|
168
|
+
// ❌ @template (use @typeParam)
|
|
169
|
+
/** @template T - The type */
|
|
170
|
+
|
|
171
|
+
// ❌ @module (use @packageDocumentation)
|
|
172
|
+
/** @module path/to/module */
|
|
173
|
+
|
|
174
|
+
// ❌ @fileoverview (not a TSDoc tag)
|
|
175
|
+
/** @fileoverview Description */
|
|
176
|
+
|
|
177
|
+
// ❌ @typedef, @callback, @type (use TypeScript types instead)
|
|
178
|
+
/** @typedef {Object} MyType */
|
|
179
|
+
|
|
180
|
+
// ❌ @function, @async, @class, @enum (redundant with TypeScript)
|
|
181
|
+
/** @function myFunction */
|
|
182
|
+
```
|
|
@@ -23,18 +23,30 @@ prompts/
|
|
|
23
23
|
│ ├── documentation.md # Documentation standards
|
|
24
24
|
│ └── pr-template.md # Pull request templates
|
|
25
25
|
│
|
|
26
|
-
├── # Workflow Prompts
|
|
27
|
-
├── analyze-ticket.prompt.md
|
|
28
|
-
├──
|
|
29
|
-
├──
|
|
30
|
-
├──
|
|
31
|
-
├──
|
|
32
|
-
├──
|
|
26
|
+
├── # Workflow Prompts
|
|
27
|
+
├── analyze-ticket.prompt.md # Analyze a Jira ticket
|
|
28
|
+
├── analyze-github-issue.prompt.md # Analyze a GitHub issue
|
|
29
|
+
├── create-plan.prompt.md # Create implementation plan
|
|
30
|
+
├── work-ticket.prompt.md # Start working on a Jira ticket
|
|
31
|
+
├── work-github-issue.prompt.md # Start working on a GitHub issue
|
|
32
|
+
├── prepare-pr.prompt.md # Prepare code for PR
|
|
33
|
+
├── create-pr.prompt.md # Create a pull request (Jira)
|
|
34
|
+
├── create-github-pr.prompt.md # Create a pull request (GitHub)
|
|
35
|
+
├── finalize-pr.prompt.md # Finalize and merge PR (Jira)
|
|
36
|
+
├── finalize-github-pr.prompt.md # Finalize and merge PR (GitHub)
|
|
37
|
+
├── prepare-github-release.prompt.md # Prepare a GitHub release
|
|
33
38
|
│
|
|
34
39
|
├── # Utility Prompts
|
|
35
|
-
├── review-code.prompt.md
|
|
36
|
-
├── fix-issues.prompt.md
|
|
37
|
-
|
|
40
|
+
├── review-code.prompt.md # Quick code review
|
|
41
|
+
├── fix-issues.prompt.md # Fix lint/type/test errors
|
|
42
|
+
├── add-tests.prompt.md # Add tests for components
|
|
43
|
+
├── audit-ai-seo.prompt.md # Audit a page for AI Search / agent-friendliness
|
|
44
|
+
├── resolve-github-reviews.prompt.md # Fetch/reply/resolve GitHub PR review threads
|
|
45
|
+
│
|
|
46
|
+
└── # WordPress Prompts
|
|
47
|
+
├── new-wp-component.prompt.md # Scaffold a WordPress plugin component
|
|
48
|
+
├── new-wp-plugin.prompt.md # Scaffold a WordPress plugin
|
|
49
|
+
└── quality-check.prompt.md # Run PHPCS / PHPStan / PHPUnit
|
|
38
50
|
```
|
|
39
51
|
|
|
40
52
|
## Workflow Stages
|
|
@@ -62,13 +62,57 @@ npm run build --if-present
|
|
|
62
62
|
|
|
63
63
|
Fix any issues before proceeding.
|
|
64
64
|
|
|
65
|
-
### 5.
|
|
65
|
+
### 5. Pre-PR core review (whole repo)
|
|
66
|
+
|
|
67
|
+
**First, remove the planning document** created by `work-github-issue` (e.g.
|
|
68
|
+
`docs/{feature-name}-plan.md`) — it has served its purpose. Deleting it now, **at PR creation
|
|
69
|
+
(not at finalization)**, keeps it out of the base branch instead of accumulating in `docs/` after
|
|
70
|
+
the merge. Do this **before** the review below, so the pass covers the *final* branch state and
|
|
71
|
+
catches any now-stale reference to the removed file (links, indexes, mentions):
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Remove it only if it exists — a missing file is fine, but a real `git rm` error
|
|
75
|
+
# (permissions, path typo) must surface, so do not blanket-mask with `|| true`.
|
|
76
|
+
if [ -f docs/{feature-name}-plan.md ]; then
|
|
77
|
+
git rm docs/{feature-name}-plan.md
|
|
78
|
+
fi
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Now run a **whole-repo** consistency review to catch the doc↔code drift, invalid code examples,
|
|
82
|
+
broken links, and stale indexes that otherwise trigger multi-round Copilot reviews. Review the
|
|
83
|
+
whole repo — not just the diff — because Copilot re-reviews entire files.
|
|
84
|
+
|
|
85
|
+
Run the **`core-review` skill** (`.agents/skills/core-review/SKILL.md`) as a dedicated,
|
|
86
|
+
read-only review pass. It works on every agent — only the mechanism differs (subagents are a
|
|
87
|
+
Claude-Code-only optimization, not a requirement):
|
|
88
|
+
|
|
89
|
+
- **GitHub Copilot / Codex** — no subagents; run the checklist **inline as a distinct pass** over
|
|
90
|
+
the **whole repository** (not just the diff), producing the prioritized findings list.
|
|
91
|
+
- **Claude Code** — optionally delegate to a read-only subagent (`Explore` / `general-purpose`)
|
|
92
|
+
with the brief "review the whole repo against the core-review checklist; report
|
|
93
|
+
`severity | file:line | problem | suggested fix`; do not edit files."
|
|
94
|
+
|
|
95
|
+
Apply every `critical` and `warning` finding — including any stale reference exposed by removing
|
|
96
|
+
the planning doc — re-run the checks from Step 4, then **commit the fixes and the doc removal and
|
|
97
|
+
confirm a clean worktree** (`git status`) so they are included in the push. **Re-review until the
|
|
98
|
+
pass reports zero findings** before continuing. See the skill for the full checklist.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# No `|| true`: a failed commit (hooks, signing, identity) must stop the flow, not be masked —
|
|
102
|
+
# otherwise Step 6 would push without the planning-doc removal or the review fixes.
|
|
103
|
+
git commit -m "docs: Remove planning doc for #{issue-number} ahead of PR (+ review fixes)"
|
|
104
|
+
|
|
105
|
+
# The worktree must be clean before pushing — this must print nothing.
|
|
106
|
+
git status --porcelain
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 6. Push Branch
|
|
66
110
|
|
|
67
111
|
```bash
|
|
68
112
|
git push -u origin $(git branch --show-current)
|
|
69
113
|
```
|
|
70
114
|
|
|
71
|
-
###
|
|
115
|
+
### 7. Create Pull Request
|
|
72
116
|
|
|
73
117
|
#### PR Title
|
|
74
118
|
```
|
|
@@ -133,7 +177,7 @@ EOF
|
|
|
133
177
|
- **Target**: `<base-branch>` resolved from `.agents-toolkit.json` (fallback: `main`)
|
|
134
178
|
- **Reviewers**: Based on changed files
|
|
135
179
|
|
|
136
|
-
###
|
|
180
|
+
### 8. Comment on GitHub Issue
|
|
137
181
|
|
|
138
182
|
Add a comment linking to the PR:
|
|
139
183
|
|
|
@@ -46,6 +46,12 @@ gh pr review --request-changes --body "..." | cat
|
|
|
46
46
|
gh pr review --approve | cat
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
> **Before pushing any fix commit**, run a **whole-repo core review** (not just the changed
|
|
50
|
+
> files) using the **`core-review` skill** (`.agents/skills/core-review/SKILL.md`) as a dedicated
|
|
51
|
+
> read-only pass (inline on Copilot/Codex; optionally a subagent on Claude Code). Apply everything
|
|
52
|
+
> it flags first — pushing an adjacent, unfixed issue only starts a fresh Copilot round. For the
|
|
53
|
+
> full fetch → reply → resolve loop, use the `resolve-github-reviews` prompt.
|
|
54
|
+
|
|
49
55
|
### 3. Sync with Base Branch
|
|
50
56
|
|
|
51
57
|
```bash
|
|
@@ -124,6 +130,6 @@ gh issue close {issue-number} --comment "Completed in PR #<pr-number>." | cat
|
|
|
124
130
|
|
|
125
131
|
### 8. Clean Up
|
|
126
132
|
|
|
127
|
-
- [ ]
|
|
133
|
+
- [ ] Planning docs were removed at **PR creation** (see `create-github-pr`) — verify none linger in `docs/`
|
|
128
134
|
- [ ] Ensure final documentation is complete
|
|
129
135
|
- [ ] Verify commit history is clean
|