Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ You are an expert GitHub Agentic Workflow generator. You help users create produ

## Your Knowledge

Use the committed pattern library as the source of truth: `patterns/manifest.json` plus `patterns/archetypes/*.json` generated on 2026-08-31 from 223 source repos, 175 active workflows, and 671 total workflows scanned. The current wizard manifest lists 27 user-facing archetypes; the `custom` archetype exists as a supporting pattern file and is intentionally not exposed as a HOW-step archetype.
Use the committed pattern library as the source of truth: `patterns/manifest.json` plus `patterns/archetypes/*.json` generated on 2026-08-31 from 223 source repos, 175 active workflows, and 671 total workflows scanned. The current wizard manifest lists 28 user-facing archetypes; the `custom` archetype exists as a supporting pattern file and is intentionally not exposed as a HOW-step archetype.

### Key Data Points

Expand All @@ -23,7 +23,7 @@ Use the committed pattern library as the source of truth: `patterns/manifest.jso
- `custom` is hidden from the wizard archetype cards but retained for matching and profile data. Best observed custom profiles are schedule + create-pull-request + noop at 95.2% (n=21), schedule + create-issue + noop + threat-detection at 83.9%, and schedule + create-issue + noop at 80.0%.

**Curated archetypes without empirical runs yet (`count: 0`):**
- accessibility-expert, agent-cost-tracker, ci-failure-triage, code-health-auditor, community-digest, contribution-guidelines-checker, issue-hierarchy-manager, link-checker, linter-applier, linter-miner, linter-refiner, linter-workflows, performance-nut, pr-iteration-loop, repo-qa-assistant, security-scanner, skill-pr-reviewer, user-simulator.
- accessibility-expert, agent-cost-tracker, ci-failure-triage, code-health-auditor, community-digest, contribution-guidelines-checker, issue-hierarchy-manager, link-checker, linter-applier, linter-miner, linter-refiner, linter-workflows, nitpick-reviewer, performance-nut, pr-iteration-loop, repo-qa-assistant, security-scanner, skill-pr-reviewer, user-simulator.
- Keep these archetypes available. They are newer curated patterns and should not be removed simply because they have no measured success rate.

**Trigger combo risk:**
Expand Down
35 changes: 35 additions & 0 deletions patterns/archetypes/nitpick-reviewer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"id": "nitpick-reviewer",
"label": "Nitpick Reviewer",
"description": "Review a pull request on demand via slash command and leave line-level nitpicks with a final review verdict",
"success_rate": null,
"count": 0,
"recommended_triggers": [
{
"type": "slash_command",
"config": {}
}
],
"recommended_safe_outputs": [
"create-pull-request-review-comment"
],
"recommended_tools": [
"create-pull-request-review-comment"
],
"timeout_minutes": 15,
"prompt_style": "role-rules",
"size_range_bytes": [
2000,
6000
],
"top_repos": [],
"tips": [
"Trigger with slash_command on pull_request_comment and pull_request_review_comment events so reviewers invoke it on demand rather than on every push",
"Pair create-pull-request-review-comment with submit-pull-request-review to post line comments plus one final review verdict",
"Set submit-pull-request-review allowed-events to [COMMENT, REQUEST_CHANGES] — the default GITHUB_TOKEN cannot APPROVE a pull request",
"Use cache-memory to record prior findings per PR so repeated invocations do not repost the same nitpicks",
"Set tools.github.min-integrity to approved or none depending on whether only trusted authors or any maintainer-invoked command can trigger it",
"Cap max on both create-pull-request-review-comment and submit-pull-request-review to keep reviews focused"
],
"anti_patterns": []
}
3 changes: 2 additions & 1 deletion patterns/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
"agent-cost-tracker",
"contribution-guidelines-checker",
"link-checker",
"repo-qa-assistant"
"repo-qa-assistant",
"nitpick-reviewer"
],
"workflow_generation": "workflow-generation.json",
"anti_patterns": [
Expand Down
42 changes: 42 additions & 0 deletions patterns/workflow-generation.json
Original file line number Diff line number Diff line change
Expand Up @@ -834,6 +834,48 @@
],
"min_integrity": "approved"
},
"nitpick-reviewer": {
"icon": "eye",
"capabilities": {
"github_toolsets": true
},
"permissions": [
"contents",
"pull-requests"
],
"github_toolsets": [
"repos",
"pull_requests"
],
"instructions": [
"pr-reviewer.md"
],
"trigger_overrides": {
"slash_command": {
"yaml": "slash_command:\n name: {{name}}\n events: [pull_request_comment, pull_request_review_comment]",
"description": "on a slash command left as a pull request comment"
}
},
"body": [
"# {{label}}",
"",
"You are an **on-demand pull request nitpick reviewer** for this repository, invoked by a slash command.",
"",
"## Process",
"",
"1. Read the pull request diff, the invoking comment, and any prior review notes in cache-memory",
"2. Review changed lines for style, best-practice, and minor-improvement opportunities",
"3. Leave specific, line-level review comments and one overall review verdict",
"4. Record findings in cache-memory so a repeat invocation does not repost the same nitpicks",
"",
"## Constraints",
"",
"- **DO NOT** approve the pull request — submit only COMMENT or REQUEST_CHANGES reviews.",
"- **DO NOT** duplicate a nitpick already recorded in cache-memory for this pull request.",
"- **DO NOT** review generated, vendored, or lock files."
],
"min_integrity": "approved"
},
"security-scanner": {
"icon": "shield",
"capabilities": {
Expand Down
2 changes: 1 addition & 1 deletion test/copilot-instructions.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe('copilot instructions pattern guidance', () => {
}

expect(empirical).toHaveLength(9);
expect(curated).toHaveLength(18);
expect(curated).toHaveLength(19);
for (const id of empirical) expect(instructions).toContain(`\`${id}\``);
for (const id of curated) expect(instructions).toContain(id);
expect(instructions).toContain('`custom` is hidden from the wizard archetype cards');
Expand Down
3 changes: 2 additions & 1 deletion test/patterns.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ describe('getArchetype', () => {
'skill-pr-reviewer',
'security-scanner',
'ci-failure-triage',
'agent-cost-tracker'
'agent-cost-tracker',
'nitpick-reviewer'
])('includes %s with triggers and safe outputs', (id) => {
const archetype = getArchetype(generatedPatterns, id);
expect(archetype).not.toBeNull();
Expand Down