opencodekit 0.21.9 → 0.22.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.
Files changed (165) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/AGENTS.md +116 -499
  3. package/dist/template/.opencode/README.md +1 -1
  4. package/dist/template/.opencode/agent/build.md +56 -396
  5. package/dist/template/.opencode/agent/explore.md +15 -16
  6. package/dist/template/.opencode/agent/general.md +2 -2
  7. package/dist/template/.opencode/agent/plan.md +3 -3
  8. package/dist/template/.opencode/agent/review.md +2 -3
  9. package/dist/template/.opencode/agent/scout.md +34 -16
  10. package/dist/template/.opencode/agent/vision.md +0 -1
  11. package/dist/template/.opencode/command/clarify.md +48 -0
  12. package/dist/template/.opencode/command/commit.md +53 -0
  13. package/dist/template/.opencode/command/design.md +4 -4
  14. package/dist/template/.opencode/command/fix.md +56 -0
  15. package/dist/template/.opencode/command/improve-architecture.md +55 -0
  16. package/dist/template/.opencode/command/init.md +88 -68
  17. package/dist/template/.opencode/command/refactor.md +66 -0
  18. package/dist/template/.opencode/command/review-codebase.md +1 -1
  19. package/dist/template/.opencode/command/ship.md +1 -1
  20. package/dist/template/.opencode/command/test.md +66 -0
  21. package/dist/template/.opencode/dcp.jsonc +29 -46
  22. package/dist/template/.opencode/memory/README.md +3 -5
  23. package/dist/template/.opencode/memory/_templates/adr.md +45 -0
  24. package/dist/template/.opencode/memory/project/gotchas.md +1 -1
  25. package/dist/template/.opencode/memory/project/user.md +1 -2
  26. package/dist/template/.opencode/memory/session-context.md +1 -1
  27. package/dist/template/.opencode/opencode.json +10 -332
  28. package/dist/template/.opencode/plugin/README.md +1 -1
  29. package/dist/template/.opencode/plugin/guard.ts +62 -0
  30. package/dist/template/.opencode/plugin/{lib/memory-admin-tools.ts → memory/admin.ts} +4 -4
  31. package/dist/template/.opencode/plugin/{lib → memory}/capture.ts +1 -1
  32. package/dist/template/.opencode/plugin/{lib → memory}/compile.ts +2 -2
  33. package/dist/template/.opencode/plugin/{lib → memory}/context.ts +1 -1
  34. package/dist/template/.opencode/plugin/{lib → memory}/curator.ts +1 -1
  35. package/dist/template/.opencode/plugin/{lib → memory}/db/observations.ts +102 -3
  36. package/dist/template/.opencode/plugin/{lib → memory}/db/schema.ts +43 -1
  37. package/dist/template/.opencode/plugin/{lib → memory}/db/types.ts +22 -0
  38. package/dist/template/.opencode/plugin/{lib/memory-db.ts → memory/db.ts} +1 -1
  39. package/dist/template/.opencode/plugin/{lib → memory}/distill.ts +1 -1
  40. package/dist/template/.opencode/plugin/{lib/memory-helpers.ts → memory/helpers.ts} +5 -1
  41. package/dist/template/.opencode/plugin/{lib/memory-hooks.ts → memory/hooks.ts} +1 -1
  42. package/dist/template/.opencode/plugin/{lib → memory}/index-generator.ts +2 -2
  43. package/dist/template/.opencode/plugin/{lib → memory}/inject.ts +1 -1
  44. package/dist/template/.opencode/plugin/{lib → memory}/lint.ts +2 -2
  45. package/dist/template/.opencode/plugin/memory/tools.ts +322 -0
  46. package/dist/template/.opencode/plugin/{lib → memory}/validate.ts +2 -2
  47. package/dist/template/.opencode/plugin/memory.ts +7 -17
  48. package/dist/template/.opencode/plugin/srcwalk.ts +721 -0
  49. package/dist/template/.opencode/skill/agent-code-quality-gate/SKILL.md +98 -0
  50. package/dist/template/.opencode/skill/behavioral-kernel/SKILL.md +52 -0
  51. package/dist/template/.opencode/skill/browser-testing-with-devtools/SKILL.md +85 -0
  52. package/dist/template/.opencode/skill/code-cleanup/SKILL.md +114 -0
  53. package/dist/template/.opencode/skill/code-navigation/SKILL.md +142 -0
  54. package/dist/template/.opencode/skill/code-review-and-quality/SKILL.md +131 -0
  55. package/dist/template/.opencode/skill/debugging-and-error-recovery/SKILL.md +109 -0
  56. package/dist/template/.opencode/skill/deep-module-design/SKILL.md +207 -0
  57. package/dist/template/.opencode/skill/git-workflow-and-versioning/SKILL.md +77 -0
  58. package/dist/template/.opencode/skill/grill-me/SKILL.md +140 -0
  59. package/dist/template/.opencode/skill/memory-system/SKILL.md +9 -10
  60. package/dist/template/.opencode/skill/planning-and-task-breakdown/SKILL.md +116 -0
  61. package/dist/template/.opencode/skill/shipping-and-launch/SKILL.md +95 -0
  62. package/dist/template/.opencode/skill/source-driven-development/SKILL.md +103 -0
  63. package/dist/template/.opencode/skill/spec-driven-development/SKILL.md +121 -0
  64. package/dist/template/.opencode/skill/srcwalk/SKILL.md +161 -0
  65. package/dist/template/.opencode/skill/ubiquitous-language/SKILL.md +184 -0
  66. package/dist/template/.opencode/tool/context7.ts +1 -1
  67. package/dist/template/.opencode/tool/grepsearch.ts +1 -1
  68. package/package.json +1 -1
  69. package/dist/template/.opencode/AGENT_ALIGNMENT.md +0 -564
  70. package/dist/template/.opencode/agent/painter.md +0 -83
  71. package/dist/template/.opencode/command/compound.md +0 -240
  72. package/dist/template/.opencode/command/curate.md +0 -299
  73. package/dist/template/.opencode/command/handoff.md +0 -149
  74. package/dist/template/.opencode/command/health.md +0 -356
  75. package/dist/template/.opencode/command/init-context.md +0 -297
  76. package/dist/template/.opencode/command/init-user.md +0 -125
  77. package/dist/template/.opencode/command/iterate.md +0 -200
  78. package/dist/template/.opencode/command/lfg.md +0 -173
  79. package/dist/template/.opencode/command/resume.md +0 -78
  80. package/dist/template/.opencode/command/status.md +0 -126
  81. package/dist/template/.opencode/command/ui-slop-check.md +0 -169
  82. package/dist/template/.opencode/plugin/lib/memory-tools.ts +0 -535
  83. package/dist/template/.opencode/skill/agent-evals/SKILL.md +0 -208
  84. package/dist/template/.opencode/skill/anti-ai-slop/SKILL.md +0 -76
  85. package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +0 -122
  86. package/dist/template/.opencode/skill/augment-context-engine/mcp.json +0 -6
  87. package/dist/template/.opencode/skill/brand-asset-protocol/SKILL.md +0 -222
  88. package/dist/template/.opencode/skill/code-search-patterns/SKILL.md +0 -253
  89. package/dist/template/.opencode/skill/code-simplification/SKILL.md +0 -211
  90. package/dist/template/.opencode/skill/context-condensation/SKILL.md +0 -149
  91. package/dist/template/.opencode/skill/context-initialization/SKILL.md +0 -69
  92. package/dist/template/.opencode/skill/context-management/SKILL.md +0 -390
  93. package/dist/template/.opencode/skill/deep-research/SKILL.md +0 -384
  94. package/dist/template/.opencode/skill/design-direction-advisor/SKILL.md +0 -139
  95. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +0 -191
  96. package/dist/template/.opencode/skill/executing-plans/SKILL.md +0 -247
  97. package/dist/template/.opencode/skill/figma-go/SKILL.md +0 -65
  98. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +0 -357
  99. package/dist/template/.opencode/skill/full-output-enforcement/SKILL.md +0 -62
  100. package/dist/template/.opencode/skill/gh-address-comments/SKILL.md +0 -29
  101. package/dist/template/.opencode/skill/gh-address-comments/scripts/fetch_comments.py +0 -237
  102. package/dist/template/.opencode/skill/gh-fix-ci/SKILL.md +0 -38
  103. package/dist/template/.opencode/skill/gh-fix-ci/scripts/inspect_pr_checks.py +0 -509
  104. package/dist/template/.opencode/skill/hi-fi-prototype-html/SKILL.md +0 -253
  105. package/dist/template/.opencode/skill/html-deck-export/SKILL.md +0 -189
  106. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +0 -413
  107. package/dist/template/.opencode/skill/memory-grounding/SKILL.md +0 -68
  108. package/dist/template/.opencode/skill/playwriter/SKILL.md +0 -158
  109. package/dist/template/.opencode/skill/portless/SKILL.md +0 -109
  110. package/dist/template/.opencode/skill/prd/SKILL.md +0 -146
  111. package/dist/template/.opencode/skill/prd-task/SKILL.md +0 -182
  112. package/dist/template/.opencode/skill/prd-task/references/prd-schema.json +0 -124
  113. package/dist/template/.opencode/skill/prompt-leverage/SKILL.md +0 -90
  114. package/dist/template/.opencode/skill/prompt-leverage/references/framework.md +0 -91
  115. package/dist/template/.opencode/skill/prompt-leverage/scripts/augment_prompt.py +0 -157
  116. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +0 -263
  117. package/dist/template/.opencode/skill/reconcile/SKILL.md +0 -183
  118. package/dist/template/.opencode/skill/reflection-checkpoints/SKILL.md +0 -183
  119. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +0 -443
  120. package/dist/template/.opencode/skill/requesting-code-review/references/specialist-profiles.md +0 -108
  121. package/dist/template/.opencode/skill/requesting-code-review/review.md +0 -160
  122. package/dist/template/.opencode/skill/rtk-command-compression/SKILL.md +0 -134
  123. package/dist/template/.opencode/skill/screenshot/SKILL.md +0 -48
  124. package/dist/template/.opencode/skill/screenshot/scripts/ensure_macos_permissions.sh +0 -54
  125. package/dist/template/.opencode/skill/screenshot/scripts/macos_display_info.swift +0 -22
  126. package/dist/template/.opencode/skill/screenshot/scripts/macos_permissions.swift +0 -40
  127. package/dist/template/.opencode/skill/screenshot/scripts/macos_window_info.swift +0 -126
  128. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.ps1 +0 -163
  129. package/dist/template/.opencode/skill/screenshot/scripts/take_screenshot.py +0 -585
  130. package/dist/template/.opencode/skill/security-threat-model/SKILL.md +0 -36
  131. package/dist/template/.opencode/skill/security-threat-model/references/prompt-template.md +0 -255
  132. package/dist/template/.opencode/skill/security-threat-model/references/security-controls-and-assets.md +0 -32
  133. package/dist/template/.opencode/skill/sharing-skills/SKILL.md +0 -214
  134. package/dist/template/.opencode/skill/skill-creator/SKILL.md +0 -181
  135. package/dist/template/.opencode/skill/skill-installer/SKILL.md +0 -58
  136. package/dist/template/.opencode/skill/skill-installer/scripts/github_utils.py +0 -21
  137. package/dist/template/.opencode/skill/skill-installer/scripts/install-skill-from-github.py +0 -313
  138. package/dist/template/.opencode/skill/skill-installer/scripts/list-skills.py +0 -106
  139. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +0 -244
  140. package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +0 -39
  141. package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +0 -145
  142. package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +0 -50
  143. package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +0 -90
  144. package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +0 -20
  145. package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +0 -186
  146. package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +0 -172
  147. package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +0 -78
  148. package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +0 -134
  149. package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +0 -402
  150. package/dist/template/.opencode/skill/terse-output-mode/SKILL.md +0 -95
  151. package/dist/template/.opencode/skill/think-in-code/SKILL.md +0 -136
  152. package/dist/template/.opencode/skill/ux-quality-gates/SKILL.md +0 -137
  153. package/dist/template/.opencode/skill/v1-run/SKILL.md +0 -175
  154. package/dist/template/.opencode/skill/v1-run/mcp.json +0 -6
  155. package/dist/template/.opencode/skill/verification-gates/SKILL.md +0 -63
  156. package/dist/template/.opencode/skill/visual-analysis/SKILL.md +0 -154
  157. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +0 -46
  158. package/dist/template/.opencode/skill/workspace-setup/SKILL.md +0 -76
  159. package/dist/template/.opencode/skill/writing-plans/SKILL.md +0 -320
  160. /package/dist/template/.opencode/plugin/{lib → memory}/compact.ts +0 -0
  161. /package/dist/template/.opencode/plugin/{lib → memory}/db/graph.ts +0 -0
  162. /package/dist/template/.opencode/plugin/{lib → memory}/db/maintenance.ts +0 -0
  163. /package/dist/template/.opencode/plugin/{lib → memory}/db/pipeline.ts +0 -0
  164. /package/dist/template/.opencode/plugin/{lib → memory}/notify.ts +0 -0
  165. /package/dist/template/.opencode/plugin/{lib → memory}/operation-log.ts +0 -0
@@ -1,208 +0,0 @@
1
- ---
2
- name: agent-evals
3
- description: Use when adding/changing a skill, command, or agent prompt and you want evidence it actually helps — not just intuition. Defines bounded-task evals, no-skill baselines, deterministic verifiers, JSONL trace logs, and when to skip eval. Adapted from OpenAI eval guide, OpenHands "evaluating agent skills", Anthropic "demystifying evals".
4
- ---
5
-
6
- # Agent Evals
7
-
8
- > Without evals, every skill ships on vibes. The harness-engineering literature is unanimous: **measured changes beat believed-changes**. This skill gives you the smallest workable eval loop.
9
-
10
- ## When to Use
11
-
12
- Run an eval when:
13
-
14
- - Adding a new skill that claims to improve outcomes (`anti-ai-slop`, `prompt-leverage`, `condition-based-waiting`)
15
- - Changing a prompt or instruction in an agent (`build`, `plan`, `review`)
16
- - Comparing two approaches and you don't know which is better
17
- - A skill is suspected of being inert ("does this even do anything?")
18
-
19
- **Skip eval when:**
20
-
21
- - The change is mechanical (rename, refactor, lint fix)
22
- - The change is a one-shot fix with obvious verification (test passes / build green)
23
- - The skill is purely procedural with deterministic output (workspace setup)
24
-
25
- ## Core Principle: Bounded + Baseline + Verifier
26
-
27
- Three ingredients. Skip any one and the eval is theatre.
28
-
29
- 1. **Bounded task** — a concrete prompt with a definite finish line, runnable in <5 minutes
30
- 2. **No-skill baseline** — the same task run **without** the skill loaded, for comparison
31
- 3. **Deterministic verifier** — a check that returns pass/fail without human judgment
32
-
33
- If you cannot write the verifier, the skill's value is unmeasurable and you are guessing.
34
-
35
- ## Eval Loop (Minimum Viable)
36
-
37
- ### Step 1: Define the task
38
-
39
- Pick a real failure mode the skill targets. One paragraph, copy-pastable as a prompt.
40
-
41
- ```markdown
42
- ## Task: anti-ai-slop / no-purple-gradient
43
-
44
- **Prompt:** "Build a landing page hero for a coffee roastery brand. Single HTML file."
45
-
46
- **Verifier (deterministic):**
47
-
48
- - grep output for `linear-gradient.*purple|#[89a]\d[0-9a-f]\d{3}` → must return 0 matches
49
- - grep output for `Inter|Roboto` in `font-family` → must return 0 matches
50
- - File contains `<h1>` with content → must be true
51
-
52
- **Pass criteria:** all 3 checks pass
53
- ```
54
-
55
- ### Step 2: Run baseline (no skill)
56
-
57
- Fresh subagent, **don't load the skill**. Same prompt. Save output.
58
-
59
- ```typescript
60
- task({
61
- subagent_type: "general",
62
- description: "Baseline: coffee landing page",
63
- prompt:
64
- "Build a landing page hero for a coffee roastery brand. Single HTML file. Output the full HTML only.",
65
- });
66
- ```
67
-
68
- Save result to `.beads/artifacts/<eval-id>/baseline.html`.
69
-
70
- ### Step 3: Run treatment (with skill)
71
-
72
- Fresh subagent, **load the skill explicitly** in prompt. Same task.
73
-
74
- ```typescript
75
- task({
76
- subagent_type: "general",
77
- description: "Treatment: coffee landing page",
78
- prompt: `First load the anti-ai-slop skill. Then: Build a landing page hero for a coffee roastery brand. Single HTML file. Output the full HTML only.`,
79
- });
80
- ```
81
-
82
- Save result to `.beads/artifacts/<eval-id>/treatment.html`.
83
-
84
- ### Step 4: Run verifier on both
85
-
86
- ```bash
87
- # Baseline
88
- grep -cE "linear-gradient.*purple|#[89a][0-9a-f]" baseline.html
89
- grep -cE "(Inter|Roboto)" baseline.html
90
-
91
- # Treatment
92
- grep -cE "linear-gradient.*purple|#[89a][0-9a-f]" treatment.html
93
- grep -cE "(Inter|Roboto)" treatment.html
94
- ```
95
-
96
- ### Step 5: Record result
97
-
98
- Append one JSONL line to `.opencode/evals/log.jsonl`:
99
-
100
- ```json
101
- {
102
- "eval_id": "anti-slop-001",
103
- "skill": "anti-ai-slop",
104
- "date": "2026-04-21",
105
- "baseline_pass": false,
106
- "treatment_pass": true,
107
- "delta": "+1",
108
- "notes": "baseline used purple gradient + Inter; treatment used warm browns + Source Serif"
109
- }
110
- ```
111
-
112
- ## Multi-Run for Confidence
113
-
114
- A single run can be lucky. For a skill you're seriously evaluating:
115
-
116
- - Run baseline **3 times**, treatment **3 times** (different seeds via different prompts framings)
117
- - Report pass-rate not single result: `baseline 1/3, treatment 3/3`
118
- - If treatment ≤ baseline, the skill is **inert or harmful** — fix or delete
119
-
120
- ## Verifier Patterns That Work
121
-
122
- | Skill type | Verifier |
123
- | ---------------------- | ----------------------------------------------------------------- |
124
- | Anti-pattern avoidance | `grep` for the banned pattern → expect 0 |
125
- | Required output shape | JSON schema validation, presence of required sections |
126
- | Code correctness | run the code, run its tests, check exit code |
127
- | Behavior change | call site count via `tilth_search`, file existence, line counts |
128
- | UI / visual | Playwright screenshot + pixel diff against expected, or DOM query |
129
- | Refusal / safety | grep for forbidden phrases or correct refusal pattern |
130
-
131
- ## Verifier Anti-Patterns (Don't Use)
132
-
133
- - "Ask another LLM if this is good" — non-deterministic, expensive, judgment-laden
134
- - "Check if it looks right" — not a verifier, that's a vibe
135
- - "Pass if no errors thrown" — too weak, baseline also passes
136
- - "Manually inspect" — fine for one-off, useless for regression
137
-
138
- ## Trace Logging Format
139
-
140
- For multi-step evals (agent ran 5 tool calls, made 3 edits), log the trace:
141
-
142
- ```json
143
- {
144
- "eval_id": "ship-flow-002",
145
- "steps": [
146
- { "tool": "task", "args": { "subagent_type": "explore" }, "ok": true },
147
- { "tool": "edit", "args": { "path": "src/auth.ts" }, "ok": true },
148
- { "tool": "bash", "args": { "command": "npm test" }, "ok": false, "exit_code": 1 }
149
- ],
150
- "outcome": "failed_at_step_3",
151
- "verifier_pass": false
152
- }
153
- ```
154
-
155
- This lets you find **which step** failed across many runs — surfaces flaky points in a workflow.
156
-
157
- ## When Eval Disagrees with Intuition
158
-
159
- The skill **feels** great but the eval says baseline ≥ treatment. Trust the eval. Common causes:
160
-
161
- 1. The skill is too long — the agent ignored it
162
- 2. The skill targets a problem the model already handles
163
- 3. The verifier doesn't measure what the skill actually changes (re-read your verifier)
164
- 4. The baseline prompt was too easy (try a harder task)
165
-
166
- Fix in this order: verifier → task difficulty → skill content. Delete the skill if all three fail.
167
-
168
- ## Eval Storage Convention
169
-
170
- ```
171
- .opencode/evals/
172
- ├── log.jsonl # append-only, one line per run
173
- ├── tasks/ # task definitions
174
- │ ├── anti-slop-001.md
175
- │ └── ship-flow-002.md
176
- └── artifacts/ # baseline.* and treatment.* outputs
177
- └── <eval_id>/
178
- ```
179
-
180
- Keep evals in-repo. They're documentation that the skill works.
181
-
182
- ## Integration with `/health` and `/curate`
183
-
184
- - `/health` should flag skills with **zero eval coverage** as IMPORTANT (not CRITICAL — many skills are simple enough not to need it)
185
- - `/curate` should surface eval results when proposing skill consolidation: "skill X has 0/5 passes over last 3 months, propose deletion"
186
-
187
- ## Cost Discipline
188
-
189
- - Each eval run = 1 subagent call. 6 runs (3 baseline + 3 treatment) = 6 calls.
190
- - Don't eval every skill. Eval the ones whose **value is contested** or whose **failure would be expensive**.
191
- - Cache baseline runs — re-run only when the underlying model changes.
192
-
193
- ## Output
194
-
195
- After running an eval, return:
196
-
197
- ```markdown
198
- ## Eval: <skill-name>
199
-
200
- - **Task:** [one line]
201
- - **Baseline:** N/M passes
202
- - **Treatment:** N/M passes
203
- - **Delta:** [+/-N]
204
- - **Verdict:** keep | iterate | delete
205
- - **Trace:** `.opencode/evals/log.jsonl` line <N>
206
- ```
207
-
208
- Brief. Evidence-based. No padding.
@@ -1,76 +0,0 @@
1
- ---
2
- name: anti-ai-slop
3
- description: Use when generating any visual design output (web UI, slides, animations, mockups, infographics) to actively prevent the AI default aesthetic that strips brand identity. Bans purple gradients, emoji-as-icons, rounded-card+left-accent, AI-drawn human SVGs, GitHub-dark `#0D1117`, Inter/Roboto-as-display. Adapted from huashu-design.
4
- ---
5
-
6
- # Anti AI Slop
7
-
8
- > The AI default aesthetic is the **visual common denominator** of all training data. Using it makes every brand look identical. Avoiding it is **brand protection**, not aesthetic snobbery.
9
-
10
- ## Why This Matters
11
-
12
- The reasoning chain:
13
-
14
- 1. The user wants their brand to be recognizable.
15
- 2. AI default output = average of training corpus = all brands blended = **no brand recognized**.
16
- 3. So AI defaults dilute the user's brand into "another AI-generated page."
17
- 4. Avoiding AI slop is replacing default-mode output with **brand-specific intent**.
18
-
19
- Anti-slop is the **defensive** half of design discipline. The **offensive** half is `brand-asset-protocol` (use real logos, real product images, real colors). Both required.
20
-
21
- ## The Slop Lookup Table
22
-
23
- | Pattern | Why it's slop | Allowed when |
24
- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
25
- | **Aggressive purple gradient** | The "tech feel" formula in every SaaS/AI/web3 landing page in training data | Brand actually uses purple gradient (some Linear contexts), or task is satire of slop |
26
- | **Emoji as icon** (`🚀 Fast`, `✨ Magic`) | "Not professional enough? Add an emoji" disease — symptom of training data | Brand uses them (Notion), or audience is kids / casual |
27
- | **Rounded card + left colored border accent** | 2020-2024 Material/Tailwind cliche, now visual noise | User explicitly asks, or it's in the brand spec |
28
- | **SVG-drawn imagery** (humans, faces, scenes) | AI-drawn SVG humans always have warped faces, weird proportions | **Almost never** — use real images (Wikimedia/Unsplash/AI-generated) or honest placeholder |
29
- | **CSS silhouettes for product photos** | Generates "generic tech animation" — black bg + orange accent + rounded bars. Zero brand ID | Almost never — fetch real product photo first (see `brand-asset-protocol`) |
30
- | **Inter / Roboto / Arial / system as display font** | Too common — reader can't tell "designed product" from "demo page" | Brand spec uses them (Stripe uses tuned Inter variant) |
31
- | **Cyber neon / GitHub dark `#0D1117`** | Copy of GitHub dark mode aesthetic, used everywhere | Developer tools brand that genuinely uses this direction |
32
- | **Generic stock photo "lifestyle" hero on text essay** | Adds no information; pure decoration = slop | Image is the content (museum portrait, product detail, location card) |
33
- | **3+ accent colors** | Multi-color clustering reads as "I couldn't decide" | Data legitimately has ≥3 categorical dimensions |
34
- | **Decorative-icon-on-every-line** | "Iconography slop" — pads visual density without information | Icon carries differentiating product information (status, type, action) |
35
- | **Fabricated stats / fake quotes / lorem ipsum** | "Data slop" — fills space with meaningless numbers | Never. Ask user for real content or leave honest blank space |
36
- | **One generic "page load" animation everywhere** | Scattered micro-interactions feel cheap | One well-orchestrated, intentional animation per page |
37
-
38
- **Single criterion for allowing any of these**: "the brand spec uses it" or "the task is intentionally about showing slop." Without that explicit reason, default to avoiding.
39
-
40
- ## What to Do Instead (Positive Patterns)
41
-
42
- - ✅ **`text-wrap: pretty`, CSS Grid, advanced CSS** — typography details an AI usually skips. Signals "real designer."
43
- - ✅ **Use `oklch()` or colors from the brand spec.** Never invent new colors mid-design — every invented color erodes brand consistency.
44
- - ✅ **Real images > AI-drawn SVG > HTML/CSS-faked imagery.** Photo first; AI generation second; CSS shapes only when imagery isn't the point.
45
- - ✅ **Typographic curly quotes** ("smart" not "straight") — signal of "this was reviewed."
46
- - ✅ **120% on one detail, 80% on the rest.** Taste = picking the right place to be precise. Even attention everywhere = uniformly bland.
47
- - ✅ **Honest blank > clumsy fill.** A gray block labeled "user avatar" beats an AI-drawn portrait.
48
-
49
- ## "But the task IS about slop" — Negative Examples Done Right
50
-
51
- When the work is showing what _not_ to do (a critique post, a slop-vs-good comparison):
52
-
53
- - **Don't fill the whole page with slop.** Containerize the bad sample.
54
- - Use a **dashed border + corner label** "Anti-pattern · do not copy" so the reader can tell intent.
55
- - The negative example serves the narrative; it doesn't pollute the page's primary visual register.
56
-
57
- ## Self-Check Questions (run before delivery)
58
-
59
- For every visual element on the page, ask:
60
-
61
- 1. **Why is this here?** "It looks nice" is not enough. Each element must earn its place.
62
- 2. **Could a different brand use this exact element?** If yes → it's not specific enough.
63
- 3. **Did I invent this color/font/shape, or did it come from the brand spec or a real source?**
64
- 4. **Is there an icon that adds no information?** Remove it.
65
- 5. **Is there a number/stat I made up?** Remove it or get real data.
66
- 6. **Is there a gradient that has no brand basis?** Remove it.
67
- 7. **Is there an SVG of a human/face I drew?** Replace with real image or honest placeholder.
68
-
69
- If any answer fails the test, fix before claiming done.
70
-
71
- ## Pairs Well With
72
-
73
- - `brand-asset-protocol` — the positive counterpart (real assets, brand spec)
74
- - `design-direction-advisor` — when no brand context exists, recommends differentiated directions instead of falling into AI default
75
- - `design-taste-frontend` — base aesthetic discipline for web UI (more prescriptive; this skill is more prohibitive)
76
- - `high-end-visual-design` — premium aesthetic overlay
@@ -1,122 +0,0 @@
1
- ---
2
- name: augment-context-engine
3
- description: Semantic codebase search via Augment Context Engine MCP. Use when you need to understand code relationships, find relevant implementations, or explore unfamiliar codebases beyond keyword matching.
4
- version: 1.0.0
5
- tags: [research, context]
6
- dependencies: []
7
- ---
8
-
9
- # Augment Context Engine (MCP)
10
-
11
- ## When to Use
12
-
13
- - When you need semantic search to understand code relationships or find implementations beyond keyword matching.
14
-
15
- ## When NOT to Use
16
-
17
- - When exact string matching or known file paths can be handled by grep/read/LSP locally.
18
-
19
-
20
- ## Available Tools
21
-
22
- - `augment_code_search` - Semantic search across indexed GitHub repositories
23
-
24
- **Parameters:**
25
-
26
- - `repo_owner` (string, required) - GitHub org or username (e.g. `"augmentcode"`)
27
- - `repo_name` (string, required) - Repository name (e.g. `"test-repo"`)
28
- - `query` (string, required) - Natural language description of what you're looking for
29
- - `branch` (string, optional) - Branch to search (defaults to `"main"`)
30
- - `max_results` (integer, optional) - Max code snippets to return (defaults to 5)
31
-
32
- ## Quick Start
33
-
34
- ```
35
- # Search a GitHub repo for authentication code
36
- skill_mcp(skill_name="augment-context-engine", tool_name="augment_code_search", arguments='{"repo_owner": "myorg", "repo_name": "myapp", "query": "authentication middleware that validates JWT tokens"}')
37
-
38
- # Search a specific branch with more results
39
- skill_mcp(skill_name="augment-context-engine", tool_name="augment_code_search", arguments='{"repo_owner": "myorg", "repo_name": "myapp", "query": "error handling patterns", "branch": "develop", "max_results": 10}')
40
- ```
41
-
42
- > **Tip:** Get `repo_owner` and `repo_name` from git: `git remote get-url origin`
43
-
44
- ## Setup
45
-
46
- ### 1. Install the Augment GitHub App
47
-
48
- Install at [github.com/apps/augmentcode](https://github.com/apps/augmentcode/installations/new) and grant access to the repos you want to index.
49
-
50
- ### 2. Add the remote server
51
-
52
- The skill's `mcp.json` uses `mcp-remote` to bridge the remote API via stdio.
53
-
54
- For global access, add to `~/.config/opencode/opencode.json`:
55
-
56
- ```json
57
- {
58
- "$schema": "https://opencode.ai/config.json",
59
- "mcp": {
60
- "auggie": {
61
- "type": "remote",
62
- "url": "https://api.augmentcode.com/mcp",
63
- "enabled": true
64
- }
65
- }
66
- }
67
- ```
68
-
69
- ### 3. Authenticate
70
-
71
- Sign in at [app.augmentcode.com](https://app.augmentcode.com) when prompted by `mcp-remote` on first use.
72
-
73
- ## Query Tips
74
-
75
- Good queries (natural language, conceptual):
76
-
77
- - `"function that handles user authentication"`
78
- - `"database connection setup code"`
79
- - `"tests for the payment processing module"`
80
-
81
- Bad queries (use grep instead):
82
-
83
- - `"foo_bar"` — exact symbol search
84
- - `"TODO"` — keyword search
85
- - `"code that deals with everything"` — too vague
86
-
87
- ## When to Use
88
-
89
- | Scenario | Use This | Instead Of |
90
- | ------------------------ | --------------------- | -------------------------- |
91
- | Find code by meaning | `augment_code_search` | `grep` (text only) |
92
- | Understand relationships | `augment_code_search` | `@explore` agent (heavier) |
93
- | Unfamiliar codebase | `augment_code_search` | Manual file exploration |
94
- | Cross-repo dependencies | `augment_code_search` | LSP references (narrower) |
95
-
96
- ## When NOT to Use
97
-
98
- - **Exact string matching** — Use `grep` instead (faster, free)
99
- - **Known file paths** — Use `read` directly
100
- - **Symbol definitions** — Use LSP `goToDefinition` (precise)
101
- - **Local-only work** — This searches GitHub-indexed repos, not local files
102
-
103
- ## Tool Priority Integration
104
-
105
- ```
106
- grep (text) → semantic search (meaning) → read (full file) → LSP (symbols) → edit
107
- ```
108
-
109
- Use grep first for exact matches. Escalate to semantic search when grep results are noisy or you need conceptual understanding.
110
-
111
- ## Cost
112
-
113
- - ~40-70 credits per query
114
- - Not free — use judiciously
115
- - Prefer grep for simple lookups
116
-
117
- ## Resources
118
-
119
- - Docs: https://docs.augmentcode.com/context-services/mcp/overview
120
- - OpenCode Quickstart: https://docs.augmentcode.com/context-services/mcp/quickstart-open-code
121
- - GitHub App: https://github.com/apps/augmentcode/installations/new
122
- - Product: https://www.augmentcode.com/product/context-engine-mcp
@@ -1,6 +0,0 @@
1
- {
2
- "augment-context-engine": {
3
- "command": "npx",
4
- "args": ["-y", "mcp-remote", "https://api.augmentcode.com/mcp"]
5
- }
6
- }
@@ -1,222 +0,0 @@
1
- ---
2
- name: brand-asset-protocol
3
- description: Use when designing anything for a specific brand (logo, marketing site, product launch animation, branded slide deck, redesign). MUST load before producing branded visuals. Forces real logo + product image + UI screenshot fetch BEFORE any design work — color values alone are not enough for brand recognition. Includes 5-10-2-8 quality bar (5 search rounds, 10 candidates, pick 2 best, each ≥8/10).
4
- ---
5
-
6
- # Brand Asset Protocol
7
-
8
- > Adapted from `huashu-design`. Brand recognition lives in **assets first, color second**. Generic CSS shapes can never substitute a real logo or product image.
9
-
10
- ## When to Use
11
-
12
- Trigger this protocol whenever the task names a real brand or product:
13
-
14
- - "Design a launch animation for **DJI Pocket 4**"
15
- - "Redesign the **Stripe** dashboard"
16
- - "Build a landing page for **Linear**"
17
- - "Make a slide deck about **Anthropic Claude**"
18
- - Internal client work: "Design something for **our company**"
19
-
20
- If the task is generic ("design a SaaS landing page"), skip this skill — use `design-direction-advisor` instead.
21
-
22
- ## Prerequisite: Verify the Brand Exists First
23
-
24
- Before fetching assets, confirm the brand/product **exists and you know its current state**. Never assert from training data — search.
25
-
26
- ```
27
- Trigger: any specific product/version (Pocket 4, Gemini 3 Pro, new SDK, etc.)
28
- Action: WebSearch "<product> launch date specs 2026" → read 1-3 authoritative results
29
- Cost: 10 seconds. Skipping this can cost 1-2 hours of rework.
30
- ```
31
-
32
- Forbidden phrases that signal you should search instead of guess:
33
-
34
- - ❌ "I think X hasn't launched yet"
35
- - ❌ "X is currently version N" (without checking)
36
- - ❌ "X probably doesn't exist"
37
- - ✅ "Let me search for the latest state of X"
38
-
39
- ## Asset Hierarchy: Why Color Alone Fails
40
-
41
- | Asset | Recognition contribution | Required for |
42
- | ---------------------------- | ---------------------------- | ----------------------------------------- |
43
- | **Logo** | Highest — instant ID | **Every** branded project |
44
- | **Product photos / renders** | Very high — the "main actor" | Physical products (hardware, packaging) |
45
- | **UI screenshots** | Very high — the "main actor" | Digital products (apps, SaaS, dashboards) |
46
- | Color palette | Medium — easily collides | Supporting role |
47
- | Typography | Low — needs the above | Supporting role |
48
- | Vibe keywords | Low — internal QA only | Supporting role |
49
-
50
- **Rule**: Pulling colors + fonts but skipping logo/product/UI → protocol violation. Generic placeholders, CSS silhouettes, or hand-drawn SVG cannot substitute real assets.
51
-
52
- ## The 5-Step Protocol (Strict Sequence)
53
-
54
- ### Step 1 — Ask (one full asset checklist, not vague "got brand guidelines?")
55
-
56
- Send this exact list:
57
-
58
- ```
59
- For <brand/product>, which of these do you have? (priority order)
60
- 1. Logo (SVG / high-res PNG) — required for any brand
61
- 2. Product photos / official renders — required for physical products
62
- 3. UI screenshots / interface assets — required for digital products
63
- 4. Color values (HEX / RGB / palette doc)
64
- 5. Font list (display / body)
65
- 6. Brand guidelines PDF / Figma design system / brand site URL
66
-
67
- Send what you have; I'll fetch / generate the rest.
68
- ```
69
-
70
- ### Step 2 — Search Official Sources
71
-
72
- | Asset | Where to look |
73
- | --------------- | ------------------------------------------------------------------------------------------- |
74
- | **Logo** | `<brand>.com/brand`, `/press`, `/press-kit`, `brand.<brand>.com`, header inline SVG |
75
- | **Product img** | Product detail page hero + gallery, official YouTube launch film frames, press releases |
76
- | **UI** | App Store / Play Store screenshots, official site screenshots section, demo video frames |
77
- | **Colors** | Site inline CSS / Tailwind config / brand guidelines PDF |
78
- | **Fonts** | `<link rel="stylesheet">` references on official site, Google Fonts trace, brand guidelines |
79
-
80
- Fallback queries: `<brand> logo download SVG`, `<brand> press kit`, `<brand> <product> official renders`, `<brand> app screenshots`.
81
-
82
- ### Step 3 — Download (three fallback paths per asset type)
83
-
84
- **Logo (mandatory for every brand):**
85
-
86
- ```bash
87
- # 1. Direct file (best)
88
- curl -o assets/<brand>/logo.svg https://<brand>.com/logo.svg
89
-
90
- # 2. Extract inline SVG from homepage HTML (~80% of cases)
91
- curl -A "Mozilla/5.0" -L https://<brand>.com -o assets/<brand>/homepage.html
92
- # then grep <svg>...</svg> for the logo node
93
-
94
- # 3. Official social avatar (last resort): GitHub/Twitter/LinkedIn org image
95
- ```
96
-
97
- **Product photos (mandatory for physical products):**
98
-
99
- 1. Official product page hero (right-click image URL, curl it)
100
- 2. Official press kit / press releases
101
- 3. Launch video frames (`yt-dlp` + `ffmpeg`)
102
- 4. Wikimedia Commons (public domain)
103
- 5. AI generation **using the official product photo as reference** — never replace with CSS silhouettes
104
-
105
- **UI screenshots (mandatory for digital products):**
106
-
107
- - App Store / Play Store product page (note: may be marketing mockups, not real UI — verify)
108
- - Official site screenshots section
109
- - Product demo video frames
110
- - Official Twitter/X launch posts (often the latest version)
111
- - Real screenshots from your own account when possible
112
-
113
- ### Step 4 — Quality Bar: The 5-10-2-8 Rule (non-Logo assets)
114
-
115
- > Logo rules differ: any logo must be used (no logo → stop and ask user). Other assets (product photos, UI, hero imagery) follow 5-10-2-8.
116
-
117
- | Dimension | Standard | Anti-pattern |
118
- | ---------------------- | ------------------------------------------------------------------------------------------------------- | ----------------------------------- |
119
- | **5 search rounds** | Cross-search official site / press kit / social / YouTube / Wikimedia / user account | First page of results, stop |
120
- | **10 candidates** | Gather at least 10 before filtering | Grab 2, no choice |
121
- | **Pick 2 best** | Curate 2 finals from the 10 | Use everything = visual overload |
122
- | **Each ≥8/10 quality** | Below 8 → use honest placeholder or AI-generate from official reference. **Better none than mediocre.** | Pad brand-spec.md with 7/10 fillers |
123
-
124
- **8/10 scoring dimensions** (record per asset in `brand-spec.md`):
125
-
126
- 1. **Resolution** — ≥2000px (≥3000px for print/large screen)
127
- 2. **Copyright clarity** — official > public domain > free stock > unclear (unclear = 0)
128
- 3. **Brand vibe match** — consistent with the vibe keywords in `brand-spec.md`
129
- 4. **Lighting/composition consistency** — the 2 finals should not clash
130
- 5. **Standalone narrative** — each asset must independently express a narrative role, not just decorate
131
-
132
- ### Step 5 — Codify in `brand-spec.md` (single source of truth)
133
-
134
- ```markdown
135
- # <Brand> · Brand Spec
136
-
137
- > Captured: YYYY-MM-DD
138
- > Sources: <list>
139
- > Completeness: complete / partial / inferred
140
-
141
- ## 🎯 Core Assets (first-class)
142
-
143
- ### Logo
144
-
145
- - Primary: `assets/<brand>/logo.svg`
146
- - Inverse: `assets/<brand>/logo-white.svg`
147
- - Use cases: <intro / outro / corner watermark / global>
148
- - Forbidden: <no stretch / no recolor / no outline>
149
-
150
- ### Product Photos (required for physical products)
151
-
152
- - Hero: `assets/<brand>/product-hero.png` (2000×1500)
153
- - Detail: `assets/<brand>/product-detail-1.png`
154
- - Scene: `assets/<brand>/product-scene.png`
155
-
156
- ### UI Screenshots (required for digital products)
157
-
158
- - Home: `assets/<brand>/ui-home.png`
159
- - Feature: `assets/<brand>/ui-feature-<name>.png`
160
-
161
- ## 🎨 Supporting Assets
162
-
163
- ### Palette
164
-
165
- - Primary: #XXXXXX <source>
166
- - Background: #XXXXXX
167
- - Ink: #XXXXXX
168
- - Accent: #XXXXXX
169
- - Forbidden: <colors the brand explicitly avoids>
170
-
171
- ### Typography
172
-
173
- - Display: <font stack>
174
- - Body: <font stack>
175
- - Mono: <font stack>
176
-
177
- ### Signature Details
178
-
179
- - <which details are taken to 120%>
180
-
181
- ### Forbidden Zone
182
-
183
- - <explicit "do not" rules>
184
-
185
- ### Vibe Keywords
186
-
187
- - <3-5 adjectives>
188
- ```
189
-
190
- ## Execution Discipline (after spec exists)
191
-
192
- - **All HTML must reference asset file paths from `brand-spec.md`** — no CSS silhouettes, no hand-drawn SVG substitutes.
193
- - **Logo as `<img>`** referencing the real file. Never redraw.
194
- - **Product photos as `<img>`** referencing real files. No CSS silhouettes.
195
- - **CSS variables injected from spec**: `:root { --brand-primary: ...; }` — HTML only uses `var(--brand-*)`.
196
- - This converts brand consistency from "by intent" to "by structure" — adding a new color requires editing the spec first.
197
-
198
- ## Failure Fallbacks
199
-
200
- | Missing | Action |
201
- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
202
- | **Logo not findable** | **Stop and ask the user.** Logo is the foundation of brand recognition. Don't fake it. |
203
- | **Product photo (physical)** | Prefer AI generation **using official reference image** → ask user → honest placeholder ("product photo TBD") as last resort |
204
- | **UI screenshot (digital)** | Ask user for screenshots from their account → official demo video frames. Don't use generic mockup generators. |
205
- | **Color values** | Run `design-direction-advisor` skill, recommend 3 directions with explicit assumption labels |
206
-
207
- **Forbidden**: silently using CSS silhouettes / generic gradients when assets can't be found. **Better to stop and ask than to fake.**
208
-
209
- ## Real Failures (why this protocol exists)
210
-
211
- - **Kimi animation**: Guessed "should be orange" from memory. Actual brand color: `#1783FF` blue. Full rework.
212
- - **Lovart design**: Mistook a demo brand color in a product screenshot for Lovart's own. Almost destroyed the entire design.
213
- - **DJI Pocket 4 launch animation**: Pulled colors but skipped logo + product image, used CSS silhouettes. Output was "generic black-bg + orange-accent tech animation" with zero DJI recognition. Designer's note: _"Otherwise, what are we even expressing?"_
214
-
215
- ## Cost Comparison
216
-
217
- | Path | Time |
218
- | -------------------------- | ----------------------------------------------------------------------------------- |
219
- | **Run protocol correctly** | Logo 5 min + product/UI 10 min + color grep 5 min + spec write 10 min = **~30 min** |
220
- | **Skip protocol** | Generic output → user rework 1-2 hours, sometimes full redo |
221
-
222
- **The cheapest stability investment in branded design work.** For client deliverables, launch events, or important customer projects, the 30-minute protocol is insurance.