@fro.bot/systematic 2.33.2 → 3.0.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/ATTRIBUTIONS.md +1 -1
- package/agents/design/design-iterator.md +1 -0
- package/agents/research/best-practices-researcher.md +6 -8
- package/agents/review/pattern-recognition-specialist.md +1 -1
- package/agents/workflow/systematic-implementer.md +1 -0
- package/dist/cli.js +348 -53
- package/dist/{index-vyzhzvap.js → index-yskzf7vh.js} +587 -386
- package/dist/index.js +100 -155
- package/dist/lib/agent-overlays.d.ts +0 -1
- package/dist/lib/agent-resolver.d.ts +28 -0
- package/dist/lib/bootstrap.d.ts +8 -1
- package/dist/lib/bundled-names.d.ts +3 -3
- package/dist/lib/pi-delegate-session.d.ts +31 -0
- package/dist/lib/pi-delegate-tool.d.ts +42 -0
- package/dist/lib/removed-names.d.ts +3 -3
- package/dist/lib/setup.d.ts +36 -0
- package/dist/lib/skill-loader.d.ts +1 -2
- package/dist/lib/skill-resolver.d.ts +39 -0
- package/dist/lib/skill-tool.d.ts +2 -11
- package/dist/lib/skills.d.ts +1 -9
- package/dist/lib/source-model-defaults.d.ts +1 -1
- package/dist/pi.d.ts +7 -0
- package/dist/pi.js +3641 -0
- package/dist/schemas/systematic-config.schema.json +47 -242
- package/package.json +31 -8
- package/skills/ce-brainstorm/references/handoff.md +5 -26
- package/skills/ce-brainstorm/references/universal-brainstorming.md +0 -1
- package/skills/ce-compound/SKILL.md +8 -12
- package/skills/ce-ideate/references/post-ideation-workflow.md +21 -85
- package/skills/ce-plan/SKILL.md +6 -6
- package/skills/ce-plan/references/deepening-workflow.md +6 -7
- package/skills/ce-plan/references/plan-handoff.md +1 -17
- package/skills/ce-plan/references/universal-planning.md +0 -4
- package/skills/ce-review/SKILL.md +10 -19
- package/skills/ce-review/references/persona-catalog.md +2 -7
- package/skills/ce-review/references/review-output-template.md +0 -1
- package/skills/ce-work/SKILL.md +1 -1
- package/skills/deepen-plan/SKILL.md +6 -7
- package/skills/document-review/SKILL.md +2 -2
- package/skills/git-commit-push-pr/SKILL.md +1 -2
- package/skills/lfg/SKILL.md +1 -1
- package/skills/onboarding/SKILL.md +1 -12
- package/skills/orchestrating-subagents/SKILL.md +2 -2
- package/skills/slfg/SKILL.md +2 -3
- package/skills/test-browser/SKILL.md +2 -2
- package/skills/todos/SKILL.md +239 -0
- package/skills/writing-skills/SKILL.md +102 -1
- package/skills/{writing-systematic-skills → writing-skills}/references/foundation-conventions.md +5 -5
- package/agents/design/design-implementation-reviewer.md +0 -95
- package/agents/design/figma-design-sync.md +0 -173
- package/agents/docs/ankane-readme-writer.md +0 -51
- package/agents/review/cli-agent-readiness-reviewer.md +0 -418
- package/agents/review/data-integrity-guardian.md +0 -72
- package/agents/review/data-migration-expert.md +0 -99
- package/agents/review/dhh-rails-reviewer.md +0 -46
- package/agents/review/julik-frontend-races-reviewer.md +0 -49
- package/agents/review/kieran-python-reviewer.md +0 -47
- package/agents/review/kieran-rails-reviewer.md +0 -47
- package/agents/review/performance-oracle.md +0 -112
- package/agents/review/schema-drift-detector.md +0 -143
- package/agents/review/security-sentinel.md +0 -95
- package/agents/workflow/lint.md +0 -17
- package/dist/lib/converter.d.ts +0 -14
- package/skills/andrew-kane-gem-writer/SKILL.md +0 -184
- package/skills/andrew-kane-gem-writer/references/database-adapters.md +0 -231
- package/skills/andrew-kane-gem-writer/references/module-organization.md +0 -121
- package/skills/andrew-kane-gem-writer/references/rails-integration.md +0 -183
- package/skills/andrew-kane-gem-writer/references/resources.md +0 -119
- package/skills/andrew-kane-gem-writer/references/testing-patterns.md +0 -261
- package/skills/changelog/SKILL.md +0 -139
- package/skills/claude-permissions-optimizer/SKILL.md +0 -166
- package/skills/claude-permissions-optimizer/scripts/extract-commands.mjs +0 -655
- package/skills/claude-permissions-optimizer/scripts/normalize.mjs +0 -151
- package/skills/dhh-rails-style/SKILL.md +0 -186
- package/skills/dhh-rails-style/references/architecture.md +0 -653
- package/skills/dhh-rails-style/references/controllers.md +0 -303
- package/skills/dhh-rails-style/references/frontend.md +0 -510
- package/skills/dhh-rails-style/references/gems.md +0 -266
- package/skills/dhh-rails-style/references/models.md +0 -359
- package/skills/dhh-rails-style/references/testing.md +0 -338
- package/skills/dspy-ruby/SKILL.md +0 -737
- package/skills/dspy-ruby/assets/config-template.rb +0 -187
- package/skills/dspy-ruby/assets/module-template.rb +0 -300
- package/skills/dspy-ruby/assets/signature-template.rb +0 -221
- package/skills/dspy-ruby/references/core-concepts.md +0 -674
- package/skills/dspy-ruby/references/observability.md +0 -366
- package/skills/dspy-ruby/references/optimization.md +0 -603
- package/skills/dspy-ruby/references/providers.md +0 -418
- package/skills/dspy-ruby/references/toolsets.md +0 -502
- package/skills/every-style-editor/SKILL.md +0 -135
- package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +0 -529
- package/skills/feature-video/SKILL.md +0 -383
- package/skills/gemini-imagegen/SKILL.md +0 -237
- package/skills/gemini-imagegen/requirements.txt +0 -2
- package/skills/gemini-imagegen/scripts/compose_images.py +0 -157
- package/skills/gemini-imagegen/scripts/edit_image.py +0 -144
- package/skills/gemini-imagegen/scripts/gemini_images.py +0 -263
- package/skills/gemini-imagegen/scripts/generate_image.py +0 -133
- package/skills/gemini-imagegen/scripts/multi_turn_chat.py +0 -216
- package/skills/generate_command/SKILL.md +0 -164
- package/skills/orchestrating-swarms/SKILL.md +0 -1723
- package/skills/proof/SKILL.md +0 -291
- package/skills/proof/references/hitl-review.md +0 -368
- package/skills/rclone/SKILL.md +0 -150
- package/skills/rclone/scripts/check_setup.sh +0 -60
- package/skills/setup/SKILL.md +0 -22
- package/skills/test-xcode/SKILL.md +0 -214
- package/skills/todo-create/SKILL.md +0 -109
- package/skills/todo-resolve/SKILL.md +0 -68
- package/skills/todo-triage/SKILL.md +0 -70
- package/skills/writing-systematic-skills/SKILL.md +0 -119
- /package/skills/{todo-create → todos}/assets/todo-template.md +0 -0
package/skills/slfg/SKILL.md
CHANGED
|
@@ -32,9 +32,8 @@ Wait for both to complete before continuing.
|
|
|
32
32
|
|
|
33
33
|
## Finalize Phase
|
|
34
34
|
|
|
35
|
-
8. `/systematic:
|
|
36
|
-
9.
|
|
37
|
-
10. Output `<promise>DONE</promise>` when video is in PR
|
|
35
|
+
8. `/systematic:todos` (resolve) — resolve findings, compound on learnings, clean up completed todos
|
|
36
|
+
9. Output `<promise>DONE</promise>` when work is complete
|
|
38
37
|
|
|
39
38
|
Start with step 1 now.
|
|
40
39
|
|
|
@@ -221,12 +221,12 @@ When a test fails:
|
|
|
221
221
|
|
|
222
222
|
How to proceed?
|
|
223
223
|
1. Fix now - I'll help debug and fix
|
|
224
|
-
2. Create todo - Add a todo for later (using the
|
|
224
|
+
2. Create todo - Add a todo for later (using the todos skill, Create section)
|
|
225
225
|
3. Skip - Continue testing other pages
|
|
226
226
|
```
|
|
227
227
|
|
|
228
228
|
3. **If "Fix now":** investigate, propose a fix, apply, re-run the failing test
|
|
229
|
-
4. **If "Create todo":** load the `
|
|
229
|
+
4. **If "Create todo":** load the `todos` skill (Create section) and create a todo with priority p1 and description `browser-test-{description}`, continue
|
|
230
230
|
5. **If "Skip":** log as skipped, continue
|
|
231
231
|
|
|
232
232
|
### 10. Test Summary
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: todos
|
|
3
|
+
description: Use when creating durable work items, managing todo lifecycle, or tracking findings across sessions in the file-based todo system; when reviewing pending todos for approval, prioritizing code review findings, or interactively categorizing work items; or when batch-resolving approved todos, especially after code review or triage sessions
|
|
4
|
+
argument-hint: "[create|triage|resolve] [optional: findings list, source type, or specific todo ID/pattern]"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# File-Based Todo Tracking
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
The `.context/systematic/todos/` directory is a file-based tracking system for code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter. This skill covers the full lifecycle in three sections: **Create** (new todos), **Triage** (review pending todos for approval), and **Resolve** (batch-implement approved todos).
|
|
13
|
+
|
|
14
|
+
> **Legacy support:** Always check both `.context/systematic/todos/` (canonical) and `todos/` (legacy) when reading. Write new todos only to the canonical path. This directory has a multi-session lifecycle -- do not clean it up as scratch.
|
|
15
|
+
|
|
16
|
+
## Directory Paths
|
|
17
|
+
|
|
18
|
+
| Purpose | Path |
|
|
19
|
+
|---------|------|
|
|
20
|
+
| **Canonical (write here)** | `.context/systematic/todos/` |
|
|
21
|
+
| **Legacy (read-only)** | `todos/` |
|
|
22
|
+
|
|
23
|
+
## File Naming Convention
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
{issue_id}-{status}-{priority}-{description}.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- **issue_id**: Sequential number (001, 002, ...) -- never reused
|
|
30
|
+
- **status**: `pending` | `ready` | `complete`
|
|
31
|
+
- **priority**: `p1` (critical) | `p2` (important) | `p3` (nice-to-have)
|
|
32
|
+
- **description**: kebab-case, brief
|
|
33
|
+
|
|
34
|
+
**Example:** `002-ready-p1-fix-n-plus-1.md`
|
|
35
|
+
|
|
36
|
+
## File Structure
|
|
37
|
+
|
|
38
|
+
Each todo has YAML frontmatter and structured sections. Use the todo template included below when creating new todos.
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
---
|
|
42
|
+
status: ready
|
|
43
|
+
priority: p1
|
|
44
|
+
issue_id: "002"
|
|
45
|
+
tags: [rails, performance]
|
|
46
|
+
dependencies: ["001"] # Issue IDs this is blocked by
|
|
47
|
+
---
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Required sections:** Problem Statement, Findings, Proposed Solutions, Recommended Action (filled during triage), Acceptance Criteria, Work Log.
|
|
51
|
+
|
|
52
|
+
**Optional sections:** Technical Details, Resources, Notes.
|
|
53
|
+
|
|
54
|
+
## Integration with Workflows
|
|
55
|
+
|
|
56
|
+
| Trigger | Flow |
|
|
57
|
+
|---------|------|
|
|
58
|
+
| Code review | `/ce:review` -> Findings -> `/systematic:todos` (Triage section) -> Todos |
|
|
59
|
+
| Autonomous review | `/ce:review mode:autofix` -> Residual todos -> `/systematic:todos` (Resolve section) |
|
|
60
|
+
| Code TODOs | `/systematic:todos` (Resolve section) -> Fixes + Complex todos |
|
|
61
|
+
| Planning | Brainstorm -> Create todo -> Work -> Complete |
|
|
62
|
+
|
|
63
|
+
## Key Distinction
|
|
64
|
+
|
|
65
|
+
This skill manages **durable, cross-session work items** persisted as markdown files. For temporary in-session step tracking, use platform task tools (`todowrite`/`TaskUpdate` in OpenCode, `update_plan` in Codex) instead.
|
|
66
|
+
|
|
67
|
+
> **Tool preference:** Use native file-search/glob and content-search tools instead of shell commands for finding and reading todo files. Shell only for operations with no native equivalent (`mv`, `mkdir -p`).
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Create
|
|
72
|
+
|
|
73
|
+
### Creating a New Todo
|
|
74
|
+
|
|
75
|
+
1. `mkdir -p .context/systematic/todos/`
|
|
76
|
+
2. Search both paths for `[0-9]*-*.md`, find the highest numeric prefix, increment, zero-pad to 3 digits.
|
|
77
|
+
3. Use the todo template included below, write to canonical path as `{NEXT_ID}-pending-{priority}-{description}.md`.
|
|
78
|
+
4. Fill Problem Statement, Findings, Proposed Solutions, Acceptance Criteria, and initial Work Log entry.
|
|
79
|
+
5. Set status: `pending` (needs triage) or `ready` (pre-approved).
|
|
80
|
+
|
|
81
|
+
**Create a todo when** the work needs more than ~15 minutes, has dependencies, requires planning, or needs prioritization. **Act immediately instead** when the fix is trivial, obvious, and self-contained.
|
|
82
|
+
|
|
83
|
+
### Triaging Pending Items
|
|
84
|
+
|
|
85
|
+
1. Glob `*-pending-*.md` in both paths.
|
|
86
|
+
2. Review each todo's Problem Statement, Findings, and Proposed Solutions.
|
|
87
|
+
3. Approve: rename `pending` -> `ready` in filename and frontmatter, fill Recommended Action.
|
|
88
|
+
4. Defer: leave as `pending`.
|
|
89
|
+
|
|
90
|
+
See the Triage section below for an interactive approval workflow.
|
|
91
|
+
|
|
92
|
+
### Managing Dependencies
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
dependencies: ["002", "005"] # Blocked by these issues
|
|
96
|
+
dependencies: [] # No blockers
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
To check blockers: search for `{dep_id}-complete-*.md` in both paths. Missing matches = incomplete blockers.
|
|
100
|
+
|
|
101
|
+
### Completing a Todo
|
|
102
|
+
|
|
103
|
+
1. Verify all acceptance criteria.
|
|
104
|
+
2. Update Work Log with final session.
|
|
105
|
+
3. Rename `ready` -> `complete` in filename and frontmatter.
|
|
106
|
+
4. Check for unblocked work: search for files containing `dependencies:.*"{issue_id}"`.
|
|
107
|
+
|
|
108
|
+
### Todo Template
|
|
109
|
+
|
|
110
|
+
@./assets/todo-template.md
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Triage
|
|
115
|
+
|
|
116
|
+
Interactive workflow for reviewing pending todos one by one and deciding whether to approve, skip, or modify each.
|
|
117
|
+
|
|
118
|
+
**Do not write code during triage.** This is purely for review and prioritization -- implementation happens in the Resolve section below.
|
|
119
|
+
|
|
120
|
+
- First set the /model to Haiku
|
|
121
|
+
- Read all pending todos from `.context/systematic/todos/` and legacy `todos/` directories
|
|
122
|
+
|
|
123
|
+
### 1. Present Each Finding
|
|
124
|
+
|
|
125
|
+
For each pending todo, present it clearly with severity, category, description, location, problem scenario, proposed solution, and effort estimate. Then ask:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Do you want to add this to the todo list?
|
|
129
|
+
1. yes - approve and mark ready
|
|
130
|
+
2. next - skip (deletes the todo file)
|
|
131
|
+
3. custom - modify before approving
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Use severity levels: 🔴 P1 (CRITICAL), 🟡 P2 (IMPORTANT), 🔵 P3 (NICE-TO-HAVE).
|
|
135
|
+
|
|
136
|
+
Include progress tracking in each header: `Progress: 3/10 completed`
|
|
137
|
+
|
|
138
|
+
### 2. Handle Decision
|
|
139
|
+
|
|
140
|
+
**yes:** Rename file from `pending` -> `ready` in both filename and frontmatter. Fill the Recommended Action section. If creating a new todo (not updating existing), use the naming convention from the Create section above.
|
|
141
|
+
|
|
142
|
+
Priority mapping: 🔴 P1 -> `p1`, 🟡 P2 -> `p2`, 🔵 P3 -> `p3`
|
|
143
|
+
|
|
144
|
+
Confirm: "✅ Approved: `{filename}` (Issue #{issue_id}) - Status: **ready**"
|
|
145
|
+
|
|
146
|
+
**next:** Delete the todo file. Log as skipped for the final summary.
|
|
147
|
+
|
|
148
|
+
**custom:** Ask what to modify, update, re-present, ask again.
|
|
149
|
+
|
|
150
|
+
### 3. Final Summary
|
|
151
|
+
|
|
152
|
+
After all items processed:
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
## Triage Complete
|
|
156
|
+
|
|
157
|
+
**Total Items:** [X] | **Approved (ready):** [Y] | **Skipped:** [Z]
|
|
158
|
+
|
|
159
|
+
### Approved Todos (Ready for Work):
|
|
160
|
+
- `042-ready-p1-transaction-boundaries.md` - Transaction boundary issue
|
|
161
|
+
|
|
162
|
+
### Skipped (Deleted):
|
|
163
|
+
- Item #5: [reason]
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### 4. Next Steps
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
What would you like to do next?
|
|
170
|
+
|
|
171
|
+
1. proceed to the Resolve section below to resolve the todos
|
|
172
|
+
2. commit the todos
|
|
173
|
+
3. nothing, go chill
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Resolve
|
|
179
|
+
|
|
180
|
+
Resolve approved todos using parallel processing, document lessons learned, then clean up.
|
|
181
|
+
|
|
182
|
+
Only `ready` todos are resolved. `pending` todos are skipped — they haven't been triaged yet. If pending todos exist, list them at the end so the user knows what was left behind.
|
|
183
|
+
|
|
184
|
+
### 1. Analyze
|
|
185
|
+
|
|
186
|
+
Scan `.context/systematic/todos/*.md` and legacy `todos/*.md`. Partition by status:
|
|
187
|
+
|
|
188
|
+
- **`ready`** (status field or `-ready-` in filename): resolve these.
|
|
189
|
+
- **`pending`**: skip. Report them at the end.
|
|
190
|
+
- **`complete`**: ignore, already done.
|
|
191
|
+
|
|
192
|
+
If a specific todo ID or pattern was passed as an argument, filter to matching todos only (still must be `ready`).
|
|
193
|
+
|
|
194
|
+
Residual actionable work from `ce:review mode:autofix` after its `safe_auto` pass will already be `ready`.
|
|
195
|
+
|
|
196
|
+
Skip any todo that recommends deleting, removing, or gitignoring files in `docs/brainstorms/`, `docs/plans/`, or `docs/solutions/` — these are intentional pipeline artifacts.
|
|
197
|
+
|
|
198
|
+
### 2. Plan
|
|
199
|
+
|
|
200
|
+
Create a task list grouped by type (e.g., `todowrite` in OpenCode, `update_plan` in Codex). Analyze dependencies -- items that others depend on run first. Output a mermaid diagram showing execution order and parallelism.
|
|
201
|
+
|
|
202
|
+
### 3. Implement (PARALLEL)
|
|
203
|
+
|
|
204
|
+
Spawn a `systematic:workflow:pr-comment-resolver` agent per item. Prefer parallel; fall back to sequential respecting dependency order.
|
|
205
|
+
|
|
206
|
+
**Batching:** 1-4 items: direct parallel returns. 5+ items: batches of 4, each returning only a short status summary (todo handled, files changed, tests run/skipped, blockers).
|
|
207
|
+
|
|
208
|
+
For large sets, use a scratch directory at `.context/systematic/todo-resolve/<run-id>/` for per-resolver artifacts. Return only completion summaries to parent.
|
|
209
|
+
|
|
210
|
+
### 4. Commit & Resolve
|
|
211
|
+
|
|
212
|
+
Commit changes, mark todos resolved, push to remote.
|
|
213
|
+
|
|
214
|
+
GATE: STOP. Verify todos resolved and changes committed before proceeding.
|
|
215
|
+
|
|
216
|
+
### 5. Compound on Lessons Learned
|
|
217
|
+
|
|
218
|
+
Load the `ce:compound` skill to document what was learned. Todo resolutions often surface patterns and architectural insights worth capturing.
|
|
219
|
+
|
|
220
|
+
GATE: STOP. Verify the compound skill produced a solution document in `docs/solutions/`. If none (user declined or no learnings), continue.
|
|
221
|
+
|
|
222
|
+
### 6. Clean Up
|
|
223
|
+
|
|
224
|
+
Delete completed/resolved todo files from both paths. If a scratch directory was created at `.context/systematic/todo-resolve/<run-id>/`, delete it (unless user asked to inspect).
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
Todos resolved: [count]
|
|
228
|
+
Pending (skipped): [count, or "none"]
|
|
229
|
+
Lessons documented: [path to solution doc, or "skipped"]
|
|
230
|
+
Todos cleaned up: [count deleted]
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
If pending todos were skipped, list them:
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
Skipped pending todos (proceed to the Triage section above to approve):
|
|
237
|
+
- 003-pending-p2-missing-index.md
|
|
238
|
+
- 005-pending-p3-rename-variable.md
|
|
239
|
+
```
|
|
@@ -596,7 +596,7 @@ Deploying untested skills = deploying untested code. It's a violation of quality
|
|
|
596
596
|
|
|
597
597
|
## Skill Creation Checklist (TDD Adapted)
|
|
598
598
|
|
|
599
|
-
**IMPORTANT: Use
|
|
599
|
+
**IMPORTANT: Use todowrite to create todos for EACH checklist item below.**
|
|
600
600
|
|
|
601
601
|
**RED Phase - Write Failing Test:**
|
|
602
602
|
- [ ] Create pressure scenarios (3+ combined pressures for discipline skills)
|
|
@@ -645,6 +645,107 @@ How future Claude finds your skill:
|
|
|
645
645
|
|
|
646
646
|
**Optimize for this flow** - put searchable terms early and often.
|
|
647
647
|
|
|
648
|
+
## Systematic Bundled Skills
|
|
649
|
+
|
|
650
|
+
Skills that live under this repo's `skills/` directory follow this skill's authoring discipline (pressure scenarios, trigger-oriented descriptions, concise bodies, references only when depth earns its keep) plus a Systematic-specific delta covering runtime frontmatter contracts, file layout, and identity defaults. This section is that delta.
|
|
651
|
+
|
|
652
|
+
### When To Use
|
|
653
|
+
|
|
654
|
+
Use this section when you are:
|
|
655
|
+
|
|
656
|
+
- Creating a new bundled skill under `skills/`
|
|
657
|
+
- Editing an existing bundled skill's frontmatter or file layout
|
|
658
|
+
- Fixing content-integrity frontmatter or sub-file failures
|
|
659
|
+
- Deciding whether a skill needs references, scripts, assets, or templates
|
|
660
|
+
- Auditing bundled skills for provider-portable defaults
|
|
661
|
+
|
|
662
|
+
For worked examples and judgment calls, read `references/foundation-conventions.md`.
|
|
663
|
+
|
|
664
|
+
### Frontmatter Rules
|
|
665
|
+
|
|
666
|
+
Every bundled skill must have YAML frontmatter with:
|
|
667
|
+
|
|
668
|
+
- `name` - unprefixed skill identifier. The loader adds the `systematic:` command prefix automatically unless the skill intentionally belongs to another namespace such as `ce:`.
|
|
669
|
+
- `description` - third-person trigger conditions. Prefer `Use when...`; describe when to load the skill, not its internal workflow.
|
|
670
|
+
|
|
671
|
+
Optional fields are allowed only when the runtime loader recognizes them:
|
|
672
|
+
|
|
673
|
+
| Field | Use |
|
|
674
|
+
|---|---|
|
|
675
|
+
| `argument-hint` | Shows expected invocation arguments. |
|
|
676
|
+
| `disable-model-invocation` | Prevents direct model invocation for dispatcher-style skills. |
|
|
677
|
+
| `allowed-tools` | Declares tool constraints for skill execution. |
|
|
678
|
+
| `license` | Carries skill licensing metadata. |
|
|
679
|
+
| `compatibility` | Notes platform or version compatibility. |
|
|
680
|
+
| `metadata` | String-only metadata map. |
|
|
681
|
+
| `user-invocable` | Marks whether users should invoke the skill directly. |
|
|
682
|
+
| `agent` | Selects a companion agent when the loader supports it. |
|
|
683
|
+
| `model` | Selects a model for skill execution when justified. |
|
|
684
|
+
| `context` | Use `fork` when the skill should run in forked subtask context. |
|
|
685
|
+
| `subtask` | Explicit forked-subtask marker recognized by the runtime. |
|
|
686
|
+
|
|
687
|
+
`preconditions` is banned. It has no runtime consumer. Put prerequisite guidance in the skill body instead.
|
|
688
|
+
|
|
689
|
+
### File Layout
|
|
690
|
+
|
|
691
|
+
The required entry point is:
|
|
692
|
+
|
|
693
|
+
```text
|
|
694
|
+
skills/<skill-name>/SKILL.md
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
Optional sub-files must live under one of these directories:
|
|
698
|
+
|
|
699
|
+
- `references/` - deeper guidance, decision tables, long examples, or API notes
|
|
700
|
+
- `scripts/` - executable helpers an agent can run
|
|
701
|
+
- `assets/` - static files used by the skill
|
|
702
|
+
- `templates/` - reusable stubs or document templates
|
|
703
|
+
|
|
704
|
+
Keep the main `SKILL.md` small enough to decide whether and how to proceed. Move heavy detail to `references/`, and cite it with a repo-local path such as `references/foundation-conventions.md` so the sub-file integrity gate can verify it exists.
|
|
705
|
+
|
|
706
|
+
### Identity Defaults
|
|
707
|
+
|
|
708
|
+
Bundled agents must omit the `model` field entirely:
|
|
709
|
+
|
|
710
|
+
```yaml
|
|
711
|
+
---
|
|
712
|
+
name: example-agent
|
|
713
|
+
description: ...
|
|
714
|
+
# no `model:` line
|
|
715
|
+
---
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
Per [OpenCode's agent docs](https://opencode.ai/docs/agents/), subagents with no `model` inherit the model of the primary agent that invoked them — which is the desired portable behavior. Do **not** declare `model: inherit`: that literal value is undocumented and produces `ProviderModelNotFoundError` on OpenCode older than ~v1.13.x (pre [sst/opencode#17888](https://github.com/sst/opencode/pull/17888)). Hardcoded provider model IDs (`anthropic/...`, `openai/...`, etc.) are also banned from **bundled agent markdown/frontmatter** because they break users on other providers. Source-owned category model defaults in TypeScript code are a separate mechanism — they are audited, centrally maintained, and do not violate this markdown rule.
|
|
719
|
+
|
|
720
|
+
For agent or API attribution, `ai:systematic` is the machine ID used by Systematic-owned operations, such as a `by` field or `X-Agent-Id` header. It is not a skill cross-reference convention.
|
|
721
|
+
|
|
722
|
+
### Validator
|
|
723
|
+
|
|
724
|
+
Run the content-integrity gate before shipping skill changes:
|
|
725
|
+
|
|
726
|
+
```bash
|
|
727
|
+
bun 'scripts/content-integrity.ts'
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
The gate checks:
|
|
731
|
+
|
|
732
|
+
- Skill frontmatter is present and uses only runtime-recognized fields.
|
|
733
|
+
- Required `name` and `description` fields are non-empty.
|
|
734
|
+
- Banned frontmatter such as `preconditions` is absent.
|
|
735
|
+
- Bundled agents omit the `model` field.
|
|
736
|
+
- Skill references to `references/`, `scripts/`, `assets/`, and `templates/` resolve on disk.
|
|
737
|
+
|
|
738
|
+
If the gate fails, fix the content rather than broadening the validator unless the runtime loader contract has actually changed.
|
|
739
|
+
|
|
740
|
+
### Common Mistakes (Systematic Bundled Skills)
|
|
741
|
+
|
|
742
|
+
| Mistake | Fix |
|
|
743
|
+
|---|---|
|
|
744
|
+
| Adding a new frontmatter field because it reads well | Add body prose instead, unless the runtime loader consumes the field. |
|
|
745
|
+
| Summarizing the whole workflow in `description` | Describe trigger conditions only. |
|
|
746
|
+
| Adding any `model` field to a bundled agent | Omit the field; subagents inherit from the invoking primary agent. |
|
|
747
|
+
| Linking to a non-existent reference file | Create the file or remove the link. |
|
|
748
|
+
|
|
648
749
|
## The Bottom Line
|
|
649
750
|
|
|
650
751
|
**Creating skills IS TDD for process documentation.**
|
package/skills/{writing-systematic-skills → writing-skills}/references/foundation-conventions.md
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Foundation Conventions
|
|
2
2
|
|
|
3
|
-
This reference expands the Systematic-specific rules from `SKILL.md`. The mechanical rules are enforced by `bun scripts/content-integrity.ts`; this file explains the judgment calls behind them.
|
|
3
|
+
This reference expands the Systematic-specific rules from the "Systematic Bundled Skills" section of `SKILL.md`. The mechanical rules are enforced by `bun scripts/content-integrity.ts`; this file explains the judgment calls behind them.
|
|
4
4
|
|
|
5
5
|
## Frontmatter
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ Systematic skill frontmatter mirrors what the runtime loader actually reads. Do
|
|
|
8
8
|
|
|
9
9
|
| Field | Required | When To Use | Enforcement | Example |
|
|
10
10
|
|---|---:|---|---|---|
|
|
11
|
-
| `name` | Yes | Every skill. Use the unprefixed skill identifier unless another namespace is intentional. | Read + enforced (loader rejects missing/null) | `name: writing-
|
|
12
|
-
| `description` | Yes | Trigger-oriented discovery text. Third person. Prefer `Use when...`. | Read + enforced (loader rejects missing/null) | `description: Use when
|
|
11
|
+
| `name` | Yes | Every skill. Use the unprefixed skill identifier unless another namespace is intentional. | Read + enforced (loader rejects missing/null) | `name: writing-skills` |
|
|
12
|
+
| `description` | Yes | Trigger-oriented discovery text. Third person. Prefer `Use when...`. | Read + enforced (loader rejects missing/null) | `description: Use when creating new skills, editing existing skills, or verifying skills work before deployment` |
|
|
13
13
|
| `argument-hint` | No | The skill accepts meaningful invocation arguments. | Read + surfaced to callers | `argument-hint: "[path/to/document.md]"` |
|
|
14
14
|
| `disable-model-invocation` | No | Dispatcher or routing skills that should not be directly model-invoked. | Read + enforced (loader acts on it) | `disable-model-invocation: true` |
|
|
15
15
|
| `allowed-tools` | No | The skill needs an explicit tool allowlist. | **Read but not enforced.** `src/lib/skills.ts` parses it into `SkillFrontmatter.allowedTools` and passes it through, but no permission gate in `src/lib` acts on it. OpenCode treats it as metadata, not enforced permissions. Do not rely on this field to restrict tool access. | `allowed-tools: Bash, Read` |
|
|
@@ -126,9 +126,9 @@ Systematic provides source-owned category model defaults in TypeScript code for
|
|
|
126
126
|
|
|
127
127
|
### Machine ID
|
|
128
128
|
|
|
129
|
-
`ai:systematic` is a machine identity string for Systematic-owned operations
|
|
129
|
+
`ai:systematic` is a machine identity string for Systematic-owned operations, used as the `by` field on operations and the `X-Agent-Id` header where applicable. Keep it lowercase and stable.
|
|
130
130
|
|
|
131
|
-
Do not use `ai:systematic` as a skill-reference pattern. Skill and agent references use their own namespaces, such as `systematic:writing-
|
|
131
|
+
Do not use `ai:systematic` as a skill-reference pattern. Skill and agent references use their own namespaces, such as `systematic:writing-skills` or `systematic:research:best-practices-researcher`.
|
|
132
132
|
|
|
133
133
|
### Public-Facing Voice
|
|
134
134
|
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: design-implementation-reviewer
|
|
3
|
-
description: "Visually compares live UI implementation against Figma designs and provides detailed feedback on discrepancies. Use after writing or modifying HTML/CSS/React components to verify design fidelity."
|
|
4
|
-
mode: subagent
|
|
5
|
-
temperature: 0.1
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
You are an expert UI/UX implementation reviewer specializing in ensuring pixel-perfect fidelity between Figma designs and live implementations. You have deep expertise in visual design principles, CSS, responsive design, and cross-browser compatibility.
|
|
9
|
-
|
|
10
|
-
Your primary responsibility is to conduct thorough visual comparisons between implemented UI and Figma designs, providing actionable feedback on discrepancies.
|
|
11
|
-
|
|
12
|
-
## Your Workflow
|
|
13
|
-
|
|
14
|
-
1. **Capture Implementation State**
|
|
15
|
-
- Use agent-browser CLI to capture screenshots of the implemented UI
|
|
16
|
-
- Test different viewport sizes if the design includes responsive breakpoints
|
|
17
|
-
- Capture interactive states (hover, focus, active) when relevant
|
|
18
|
-
- Document the URL and selectors of the components being reviewed
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
agent-browser open [url]
|
|
22
|
-
agent-browser snapshot -i
|
|
23
|
-
agent-browser screenshot output.png
|
|
24
|
-
# For hover states:
|
|
25
|
-
agent-browser hover @e1
|
|
26
|
-
agent-browser screenshot hover-state.png
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
2. **Retrieve Design Specifications**
|
|
30
|
-
- Use the Figma MCP to access the corresponding design files
|
|
31
|
-
- Extract design tokens (colors, typography, spacing, shadows)
|
|
32
|
-
- Identify component specifications and design system rules
|
|
33
|
-
- Note any design annotations or developer handoff notes
|
|
34
|
-
|
|
35
|
-
3. **Conduct Systematic Comparison**
|
|
36
|
-
- **Visual Fidelity**: Compare layouts, spacing, alignment, and proportions
|
|
37
|
-
- **Typography**: Verify font families, sizes, weights, line heights, and letter spacing
|
|
38
|
-
- **Colors**: Check background colors, text colors, borders, and gradients
|
|
39
|
-
- **Spacing**: Measure padding, margins, and gaps against design specs
|
|
40
|
-
- **Interactive Elements**: Verify button states, form inputs, and animations
|
|
41
|
-
- **Responsive Behavior**: Ensure breakpoints match design specifications
|
|
42
|
-
- **Accessibility**: Note any WCAG compliance issues visible in the implementation
|
|
43
|
-
|
|
44
|
-
4. **Generate Structured Review**
|
|
45
|
-
Structure your review as follows:
|
|
46
|
-
```
|
|
47
|
-
## Design Implementation Review
|
|
48
|
-
|
|
49
|
-
### ✅ Correctly Implemented
|
|
50
|
-
- [List elements that match the design perfectly]
|
|
51
|
-
|
|
52
|
-
### ⚠️ Minor Discrepancies
|
|
53
|
-
- [Issue]: [Current implementation] vs [Expected from Figma]
|
|
54
|
-
- Impact: [Low/Medium]
|
|
55
|
-
- Fix: [Specific CSS/code change needed]
|
|
56
|
-
|
|
57
|
-
### ❌ Major Issues
|
|
58
|
-
- [Issue]: [Description of significant deviation]
|
|
59
|
-
- Impact: High
|
|
60
|
-
- Fix: [Detailed correction steps]
|
|
61
|
-
|
|
62
|
-
### 📐 Measurements
|
|
63
|
-
- [Component]: Figma: [value] | Implementation: [value]
|
|
64
|
-
|
|
65
|
-
### 💡 Recommendations
|
|
66
|
-
- [Suggestions for improving design consistency]
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
5. **Provide Actionable Fixes**
|
|
70
|
-
- Include specific CSS properties and values that need adjustment
|
|
71
|
-
- Reference design tokens from the design system when applicable
|
|
72
|
-
- Suggest code snippets for complex fixes
|
|
73
|
-
- Prioritize fixes based on visual impact and user experience
|
|
74
|
-
|
|
75
|
-
## Important Guidelines
|
|
76
|
-
|
|
77
|
-
- **Be Precise**: Use exact pixel values, hex codes, and specific CSS properties
|
|
78
|
-
- **Consider Context**: Some variations might be intentional (e.g., browser rendering differences)
|
|
79
|
-
- **Focus on User Impact**: Prioritize issues that affect usability or brand consistency
|
|
80
|
-
- **Account for Technical Constraints**: Recognize when perfect fidelity might not be technically feasible
|
|
81
|
-
- **Reference Design System**: When available, cite design system documentation
|
|
82
|
-
- **Test Across States**: Don't just review static appearance; consider interactive states
|
|
83
|
-
|
|
84
|
-
## Edge Cases to Consider
|
|
85
|
-
|
|
86
|
-
- Browser-specific rendering differences
|
|
87
|
-
- Font availability and fallbacks
|
|
88
|
-
- Dynamic content that might affect layout
|
|
89
|
-
- Animations and transitions not visible in static designs
|
|
90
|
-
- Accessibility improvements that might deviate from pure visual design
|
|
91
|
-
|
|
92
|
-
When you encounter ambiguity between the design and implementation requirements, clearly note the discrepancy and provide recommendations for both strict design adherence and practical implementation approaches.
|
|
93
|
-
|
|
94
|
-
Your goal is to ensure the implementation delivers the intended user experience while maintaining design consistency and technical excellence.
|
|
95
|
-
|