devloom 1.0.0 → 1.2.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 (142) hide show
  1. package/.ai/core.dsl +44 -0
  2. package/.ai/skills.dsl +39 -0
  3. package/.ai/verify.dsl +97 -0
  4. package/.ai/workflow.dsl +81 -0
  5. package/.opencode/themes/devloom-night-owl.json +103 -0
  6. package/GUIDE.md +572 -115
  7. package/README.md +583 -109
  8. package/SECURITY.md +93 -0
  9. package/agents/devloom-developer-flash.md +31 -0
  10. package/agents/devloom-developer-senior.md +32 -0
  11. package/agents/devloom-developer.md +21 -55
  12. package/agents/devloom-documenter-flash.md +28 -0
  13. package/agents/devloom-documenter.md +17 -56
  14. package/agents/devloom-orchestrator.md +236 -356
  15. package/agents/devloom-planner-flash.md +34 -0
  16. package/agents/devloom-planner-senior.md +35 -0
  17. package/agents/devloom-planner.md +36 -0
  18. package/agents/devloom-qa-flash.md +32 -0
  19. package/agents/devloom-qa.md +21 -83
  20. package/agents/devloom-security-senior.md +35 -0
  21. package/agents/devloom-security.md +34 -0
  22. package/agents/devloom-verifier.md +33 -0
  23. package/agents/devloom-vision.md +113 -0
  24. package/agents/devloom-visual-critic.md +102 -0
  25. package/agents/devloom-visual-director.md +84 -0
  26. package/commands/devloom-agents.md +49 -0
  27. package/commands/devloom-auto.md +11 -0
  28. package/commands/devloom-context.md +82 -0
  29. package/commands/devloom-deepseek-mimo.md +11 -0
  30. package/commands/devloom-deepseek.md +11 -0
  31. package/commands/devloom-free.md +11 -0
  32. package/commands/devloom-go-economy.md +11 -0
  33. package/commands/devloom-go-flash.md +11 -0
  34. package/commands/devloom-go.md +11 -0
  35. package/commands/devloom-init.md +28 -50
  36. package/commands/devloom-loop-status.md +25 -0
  37. package/commands/devloom-loop.md +36 -0
  38. package/commands/devloom-mimo.md +11 -0
  39. package/commands/devloom-plan.md +13 -0
  40. package/commands/devloom-refresh.md +22 -0
  41. package/commands/devloom-resume.md +30 -49
  42. package/commands/devloom-save.md +69 -0
  43. package/commands/devloom-status.md +9 -18
  44. package/commands/devloom.md +99 -67
  45. package/dist/agents.d.ts +30 -0
  46. package/dist/agents.d.ts.map +1 -0
  47. package/dist/agents.js +139 -0
  48. package/dist/agents.js.map +1 -0
  49. package/dist/bootstrap.d.ts +56 -0
  50. package/dist/bootstrap.d.ts.map +1 -0
  51. package/dist/bootstrap.js +116 -0
  52. package/dist/bootstrap.js.map +1 -0
  53. package/dist/constraints.d.ts +5 -0
  54. package/dist/constraints.d.ts.map +1 -0
  55. package/dist/constraints.js +45 -0
  56. package/dist/constraints.js.map +1 -0
  57. package/dist/context.d.ts +42 -0
  58. package/dist/context.d.ts.map +1 -0
  59. package/dist/context.js +636 -0
  60. package/dist/context.js.map +1 -0
  61. package/dist/guard.d.ts +19 -0
  62. package/dist/guard.d.ts.map +1 -0
  63. package/dist/guard.js +418 -0
  64. package/dist/guard.js.map +1 -0
  65. package/dist/loop.d.ts +64 -0
  66. package/dist/loop.d.ts.map +1 -0
  67. package/dist/loop.js +164 -0
  68. package/dist/loop.js.map +1 -0
  69. package/dist/plugin.d.ts.map +1 -1
  70. package/dist/plugin.js +101 -1
  71. package/dist/plugin.js.map +1 -1
  72. package/dist/tui-agents.d.ts +61 -0
  73. package/dist/tui-agents.d.ts.map +1 -0
  74. package/dist/tui-agents.js +89 -0
  75. package/dist/tui-agents.js.map +1 -0
  76. package/dist/tui.d.ts +6 -0
  77. package/dist/tui.d.ts.map +1 -0
  78. package/dist/tui.js +92 -0
  79. package/dist/tui.js.map +1 -0
  80. package/dist/worktree.d.ts +46 -0
  81. package/dist/worktree.d.ts.map +1 -0
  82. package/dist/worktree.js +272 -0
  83. package/dist/worktree.js.map +1 -0
  84. package/package.json +46 -6
  85. package/patterns/changelog-drafter.md +38 -0
  86. package/patterns/ci-sweeper.md +40 -0
  87. package/patterns/daily-triage.md +37 -0
  88. package/patterns/dependency-sweeper.md +40 -0
  89. package/patterns/design-audit.md +63 -0
  90. package/patterns/issue-triage.md +37 -0
  91. package/patterns/post-merge-cleanup.md +34 -0
  92. package/patterns/pr-babysitter.md +37 -0
  93. package/patterns/registry.yaml +52 -0
  94. package/postinstall.mjs +264 -64
  95. package/project/README.md +29 -0
  96. package/protocol/agent-contracts.md +27 -0
  97. package/protocol/artifact-system.md +53 -0
  98. package/protocol/model-routing.md +194 -0
  99. package/protocol/orchestrator-core.md +43 -0
  100. package/protocol/project-system.md +45 -0
  101. package/protocol/rules.md +18 -0
  102. package/protocol/verification-policy.md +48 -0
  103. package/scripts/briefing.mjs +192 -0
  104. package/scripts/loop-run.mjs +205 -0
  105. package/scripts/model-capabilities.mjs +194 -0
  106. package/scripts/plugin-cache.mjs +269 -0
  107. package/scripts/profile.mjs +755 -0
  108. package/scripts/visual-benchmark.mjs +149 -0
  109. package/scripts/worktree.mjs +445 -0
  110. package/skills/build/development.md +33 -0
  111. package/skills/build/live-docs.md +38 -0
  112. package/skills/build/simplify.md +50 -0
  113. package/skills/build/vision-analysis.md +98 -0
  114. package/skills/design/app-design.md +31 -0
  115. package/skills/design/design-grounding.md +30 -0
  116. package/skills/design/design-system.md +27 -0
  117. package/skills/design/game-design.md +35 -0
  118. package/skills/design/motion-design.md +34 -0
  119. package/skills/design/visual-direction.md +32 -0
  120. package/skills/design/web-design.md +33 -0
  121. package/skills/loop/changelog-drafter.md +32 -0
  122. package/skills/loop/ci-sweeper.md +24 -0
  123. package/skills/loop/constraints.md +21 -0
  124. package/skills/loop/dependency-sweeper.md +24 -0
  125. package/skills/loop/design-audit.md +67 -0
  126. package/skills/loop/issue-triage.md +27 -0
  127. package/skills/loop/post-merge-cleanup.md +24 -0
  128. package/skills/loop/pr-babysitter.md +26 -0
  129. package/skills/loop/triage.md +25 -0
  130. package/skills/loop/verifier.md +20 -0
  131. package/skills/meta/skill-discovery.md +23 -0
  132. package/skills/plan/planning.md +27 -0
  133. package/skills/plan/verification-planning.md +40 -0
  134. package/skills/review/security-review.md +63 -0
  135. package/skills/ship/documentation.md +11 -0
  136. package/skills/verify/app-verification.md +19 -0
  137. package/skills/verify/quality-assurance.md +17 -0
  138. package/skills/verify/visual-critique.md +30 -0
  139. package/skills/verify/visual-quality-gate.md +29 -0
  140. package/skills/verify/visual-regression.md +25 -0
  141. package/agents/devloom-analyst.md +0 -83
  142. package/agents/devloom-architect.md +0 -88
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: simplify
3
+ description: Behavior-preserving simplification — reduce complexity for readability and maintainability without changing what the code does.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
7
+
8
+ ## When to use
9
+
10
+ After behavior is understood and tests exist. During review when code is harder to read than it needs to be. Never before correctness is proven.
11
+
12
+ ## Non-negotiable invariant
13
+
14
+ **Behavior does not change.** Same inputs → same outputs, same side effects, same error behavior. If a simplification changes any observable behavior, it is a refactor with risk — flag it, do not apply silently.
15
+
16
+ ## Protocol
17
+
18
+ 1. **UNDERSTAND**: read the code + its tests. If no tests cover the code, write characterization tests FIRST (lock current behavior)
19
+ 2. **IDENTIFY** complexity (in priority order):
20
+ - duplication that can be extracted once
21
+ - nesting depth > 3 (early returns, guard clauses)
22
+ - names that hide intent (rename only, no logic change)
23
+ - dead code (provably unreachable — delete)
24
+ - over-abstraction (wrappers that add indirection without value — inline)
25
+ - conditionals expressible as data/lookup tables
26
+ 3. **APPLY** one simplification at a time, smallest diff possible
27
+ 4. **VERIFY** after EACH change: run the tests that cover the touched code — all must pass before the next simplification
28
+ 5. **STOP** when further changes would trade clarity for cleverness
29
+
30
+ ## What NOT to do
31
+
32
+ - No behavior changes disguised as simplification
33
+ - No new abstractions "for future flexibility" (YAGNI)
34
+ - No reformatting-only diffs mixed with logic simplification (separate commits)
35
+ - No renaming public APIs without flagging the breaking change
36
+ - No simplifying generated code, migrations, or vendored files
37
+
38
+ ## Output
39
+
40
+ ```
41
+ SIMPLIFY_REPORT:
42
+ changes:
43
+ - <file:line> <what was simplified> | risk: none|low
44
+ - <file:line> <what> | risk: none|low
45
+ skipped:
46
+ - <what> | reason: <why not safe to simplify>
47
+ tests: <ran> → <result>
48
+ ```
49
+
50
+ RULES: tests before touching | one change at a time | verify after each | behavior-preserving or flagged | smallest diff.
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: vision-analysis
3
+ description: Analyze images and return structured, detailed descriptions tailored by image type for downstream agent consumption.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
7
+
8
+ DETECT_TYPE:
9
+ - ui_screenshot: browser/app UI, windows, buttons, forms, navigation
10
+ - wireframe: low-fidelity mockup, boxes, labels, layout sketch
11
+ - diagram: flowchart, ERD, sequence, architecture, network, UML
12
+ - chart: bar/line/pie/scatter data visualization
13
+ - code_screenshot: code editor, terminal output, stack trace, logs
14
+ - design_mockup: high-fidelity design, colors, typography, components
15
+ - photo: real-world photograph, product, person, environment
16
+ - document: text document, form, invoice, specification
17
+ - unknown: none of the above
18
+
19
+ ANALYZE by type:
20
+
21
+ ui_screenshot:
22
+ - app/page name; layout structure (nav/sidebar/main/footer)
23
+ - all visible UI elements: labels, inputs, buttons, links, icons, placeholders
24
+ - state: loading/error/empty/success indicators; disabled states; active selections
25
+ - content: text values, data shown, counts, statuses
26
+ - UX issues visible: broken layout, overflow, missing states, a11y problems
27
+
28
+ wireframe:
29
+ - page/screen intent; sections and their purpose
30
+ - element inventory: inputs, labels, CTAs, content blocks
31
+ - user flow implied; open questions or ambiguities
32
+
33
+ diagram:
34
+ - diagram type and subject
35
+ - nodes/entities: name, role, attributes if shown
36
+ - relationships: direction, labels, cardinality
37
+ - flow or sequence: start>steps>end in order
38
+ - constraints or annotations noted
39
+
40
+ chart:
41
+ - chart type; data topic; axes labels + units
42
+ - data range, trends, peaks, anomalies
43
+ - legend items; what each series represents
44
+ - key insight in one sentence
45
+
46
+ code_screenshot:
47
+ - language/runtime if identifiable
48
+ - file name / path if visible
49
+ - code structure: functions, classes, logic flow
50
+ - errors or warnings: exact message, line, type
51
+ - relevant context: imports, configs visible
52
+
53
+ design_mockup:
54
+ - component inventory with names and variants
55
+ - color palette: primary/secondary/accent hex if readable
56
+ - typography: font names, sizes, weights if visible
57
+ - spacing and grid patterns
58
+ - interactive states shown
59
+ - brand/style notes
60
+
61
+ photo:
62
+ - subject and context
63
+ - key objects, people, text visible
64
+ - environment, lighting, composition notes
65
+ - any technical or domain details visible
66
+
67
+ document:
68
+ - document type and purpose
69
+ - sections and their content
70
+ - key data fields and values
71
+ - requirements, rules, or constraints stated
72
+
73
+ OUTPUT_FORMAT:
74
+ ```
75
+ IMAGE_TYPE: <type>
76
+ SUMMARY: <one sentence — what this image shows and its purpose>
77
+
78
+ DETAILS:
79
+ <type-specific structured analysis — complete, no omissions>
80
+
81
+ FOR_AGENTS:
82
+ <actionable insights downstream agents need:
83
+ - developer: what to implement/fix based on this image
84
+ - planner: requirements or constraints visible
85
+ - qa: acceptance criteria derivable from the image
86
+ - security: any visible data exposure, auth flows, sensitive inputs
87
+ - documenter: what to document about this screen/flow>
88
+
89
+ OPEN_QUESTIONS:
90
+ <anything ambiguous or missing that the requesting agent should clarify>
91
+ ```
92
+
93
+ RULES:
94
+ - describe what IS visible, not what you assume
95
+ - quote exact text seen in the image
96
+ - if image is unclear or low-res, state confidence level
97
+ - no hallucination of unvisible elements
98
+ - output must be self-contained — other agents have no access to the image
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: app-design
3
+ description: Design for dashboards, enterprise software, product UI, forms, settings, CRUD, mobile/desktop-style apps — hierarchy and efficiency over art direction.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl|~/.config/opencode/devloom-ai/workflow.dsl
7
+ DOMAIN: PRODUCT_APP (dashboard, enterprise, forms, settings, CRUD, mobile-style, desktop-style)
8
+
9
+ PRIORITIZE:
10
+ - hierarchy: primary action / primary data always wins the eye; progressive disclosure for secondary detail
11
+ - efficiency: minimal clicks/keystrokes to outcome; keyboard paths for repeated actions
12
+ - scanability: aligned tabular data, consistent label placement, status readable at a glance (never color-only)
13
+ - density: choose an explicit density mode (comfortable/compact) per surface and keep it consistent
14
+ - predictable interaction: same control = same behavior everywhere; conventions over novelty
15
+ - stable visual language: tokens for color/spacing/type; components reused, not reinvented per page
16
+ - accessibility: WCAG-AA, visible focus, form errors associated + recoverable, touch targets >= 44px on mobile-style UI
17
+
18
+ AVOID:
19
+ - over-art-directing productivity software (no hero typography inside admin tools)
20
+ - turning every piece of content into a card — use lists, tables, dividers, plain rows where they scan better
21
+ - pill soup (every label a badge), decoration that competes with data
22
+ - hidden critical actions, silent failures, spinner-without-context
23
+ - modal stacking; wizards for simple tasks
24
+
25
+ STATES (every data surface): loading | empty (with next action) | error (with recovery) | success (with confirmation) | disabled (with reason).
26
+
27
+ RESPONSIVE: tables reflow (priority columns + row detail), nav collapses deliberately, forms single-column on small screens. Viewports: 1440x1000, 1024x900, 390x844 or project targets.
28
+
29
+ CHECK: primary action obvious | density mode chosen | all five states designed | no card-soup violation | a11y pass
30
+
31
+ OUT: APP_DESIGN_SPEC (hierarchy | density | interaction rules | state matrix | DON'Ts) — implementation stays with devloom-developer
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: design-grounding
3
+ description: Convert vague aesthetic language into explicit executable design constraints; optional OpenDesign grounding, existing design systems first.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
7
+
8
+ PURPOSE: eliminate vague aesthetic prompting. Every vague term must become constraints a developer can implement and a critic can verify.
9
+
10
+ TRANSLATE (vague -> explicit):
11
+ - premium -> type scale with clear ratios, restrained palette (<=3 hues + neutrals), generous whitespace rhythm, refined surface treatment, zero default templates
12
+ - modern -> current typography conventions, flat-or-restrained depth, high contrast hierarchy, purposeful micro-interaction; no skeuomorphic leftovers
13
+ - beautiful (unqualified) -> ask nothing: apply hierarchy + composition + spacing discipline; beauty is an outcome, not an input
14
+ - futuristic -> forward type/layout choices with legibility intact; motion explains state; NO gratuitous glow/scanlines/hexagons
15
+ - Awwwards-like -> strong art direction + compositional bravery + fast load; NEVER clone a specific product
16
+ - clean -> fewer competing elements, consistent spacing scale, limited palette, strong alignment grid
17
+ - playful -> rounded shape language, warmer palette, expressive motion budget — still WCAG-AA
18
+
19
+ GROUNDING ORDER:
20
+ 1. existing project design system / design.md (always first)
21
+ 2. OpenDesign MCP if available: typography relationships, spacing rhythm, layout density, surface treatment, palette relationships, motion, interaction, explicit DON'T rules
22
+ 3. internal reasoning + domain skill (web-design / app-design / game-design)
23
+
24
+ RULES:
25
+ - OpenDesign is OPTIONAL — its absence never fails or delays normal work; do not install MCPs to satisfy this skill
26
+ - never clone another product's identity; extract relationships (ratios, rhythms, contrast), not surfaces
27
+ - every direction ends with explicit DON'T rules (3-5), not just DO rules
28
+ - constraints must be checkable by visual-critique (e.g. "heading/body ratio >= 2" not "big headings")
29
+
30
+ OUT: GROUNDED_CONSTRAINTS (type | spacing | palette | density | shape | motion | interaction | DON'Ts)
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: design-system
3
+ description: Define or extend a project design system — tokens, components, states, iconography — as the single visual source of truth.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
7
+
8
+ WHEN: EXISTING_DESIGN_SYSTEM domain, or repeated components appearing across tickets.
9
+
10
+ DO:
11
+ - inventory what exists first (tokens, themes, component library, icon set) — extend, never fork
12
+ - tokens (as project conventions allow): color ROLES (primary/secondary/accent/surface/text/border/danger/success/warning), not raw hues; type scale; spacing scale; radii; shadows/elevation; breakpoints; motion durations
13
+ - components: name, purpose, variants, and the full state matrix (default/hover/focus/active/disabled/loading/error/empty where applicable)
14
+ - iconography: one family/style, size grid, stroke weight consistency; no mixed icon sources
15
+ - accessibility baked in: contrast pairs per role, focus ring token, touch target sizes
16
+ - document DO/DON'T per token group so misuse is detectable in visual-critique
17
+
18
+ RULES:
19
+ - design.md (project design memory) is the narrative; the system is the executable form — keep them consistent
20
+ - no one-off values that bypass tokens ("magic numbers" are defects)
21
+ - a new component needs a reason to exist — reuse before inventing
22
+ - game projects: HUD tokens include attention class (CRITICAL/ACTIVE/CONTEXTUAL/AMBIENT)
23
+ - never redesign the system inside a feature ticket unless the ticket IS the system change
24
+
25
+ CHECK: roles not raw hues | state matrix complete | focus/contrast tokens present | DO/DON'T recorded | no magic values introduced
26
+
27
+ OUT: DESIGN_SYSTEM_DELTA (tokens added/changed | components added/changed | inconsistencies found)
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: game-design
3
+ description: Design for game HUDs, menus, inventories, skill trees, loadouts, maps, settings and overlays — attention budget and state recognition first.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl|~/.config/opencode/devloom-ai/workflow.dsl
7
+ DOMAIN: GAME_UI (HUD, menu, inventory, skill tree, loadout, map, settings, overlay)
8
+
9
+ PRIORITIZE:
10
+ - gameplay context: UI must never obscure the moment-to-moment read of the game
11
+ - attention budget: only one CRITICAL element may demand attention at a time
12
+ - information urgency classification — assign EVERY element:
13
+ - CRITICAL — survival/progression breaking (health critical, objective timer)
14
+ - ACTIVE — current engagement state (ammo, cooldowns, active buffs)
15
+ - CONTEXTUAL — on demand / when relevant (map, quest log, minimap detail)
16
+ - AMBIENT — flavor/world-building (subtle meters, decorative readouts)
17
+ - readability: legible at gameplay distance/speed; high contrast against varied game backgrounds (backing plates, shadows, or adaptive color)
18
+ - fictional/world identity: the UI belongs to THIS world's materials, typography, and logic
19
+ - input method: controller/keyboard/touch focus order and hover-vs-focus parity
20
+ - state recognition: idle/hover/active/disabled/error states readable in peripheral vision
21
+
22
+ AVOID (generic game-UI defaults — reject unless the world demands them):
23
+ - cyan sci-fi HUD everywhere, random hexagons, scanlines, glowing boxes on everything
24
+ - dark SaaS dashboard disguised as game UI (generic cards + badges is not a game UI)
25
+ - fake futuristic shapes with no information function
26
+ - animation on every readout; screen shake/flash spam
27
+ - menu hierarchies deeper than the player's patience
28
+
29
+ RESPONSIVE/SCALABLE: safe-area aware (notches, TV overscan), scale presets for HUD size, 16:9 + ultrawide framing, handheld-class small screens.
30
+
31
+ A11Y: no color-only status; text scaling where platform allows; reduced-motion respected; photosensitivity rules (no rapid flashing).
32
+
33
+ CHECK: every element classified CRITICAL/ACTIVE/CONTEXTUAL/AMBIENT | one critical at a time | world identity stated | input method covered | banned defaults absent
34
+
35
+ OUT: GAME_UI_SPEC (element priority table | layout zones | state matrix | world-identity notes | DON'Ts) — implementation stays with devloom-developer
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: motion-design
3
+ description: Motion only where it materially contributes — state, hierarchy, causality, continuity, navigation, feedback; reduced-motion respected.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
7
+
8
+ USE THIS SKILL ONLY WHEN MOTION MATERIALLY CONTRIBUTES. Default answer for most UI work: minimal or none.
9
+
10
+ MOTION MAY COMMUNICATE (pick the job first, then the animation):
11
+ - state — enter/exit, expand/collapse, enable/disable
12
+ - hierarchy — what appeared above what, where focus moved
13
+ - causality — this happened BECAUSE you did that (confirmation, consequence)
14
+ - continuity — spatial relationship between two views (shared element, push/pop)
15
+ - navigation — where I am going / where I came from
16
+ - feedback — progress, loading, success, failure
17
+
18
+ RULES:
19
+ - 1 property per animation where possible; short durations (150-300ms UI, <=500ms large transitions)
20
+ - easing: ease-out for entrances, ease-in for exits, no linear except progress
21
+ - never animate layout-critical elements in ways that cause reflow jank; prefer transform/opacity
22
+ - respect prefers-reduced-motion: reduce to opacity fades or instant cuts — content must never depend on motion to be understood
23
+ - no heavy animation dependencies for trivial effects (CSS first; libraries only with existing project precedent)
24
+ - loading: indeterminate motion must still communicate "working", not decorate
25
+
26
+ AVOID:
27
+ - animating everything on page load (motion fatigue)
28
+ - parallax that fights scrolling, endless ambient loops in productivity UI
29
+ - bounce/spring overuse, shake-on-error without alternative feedback
30
+ - motion that delays the user's next action
31
+
32
+ CHECK: each animation has a stated job | reduced-motion path exists | no animation blocks interaction | no new dependency added without need
33
+
34
+ OUT: MOTION_SPEC (trigger | property | duration | easing | reduced-motion fallback) or MOTION_NONE
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: visual-direction
3
+ description: Route visual tasks and establish design direction before implementation — domain, hierarchy, three directions, one selection, design memory.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl|~/.config/opencode/devloom-ai/workflow.dsl
7
+
8
+ INPUT: requirements/ticket + optional existing .opencode/devloom/context/design.md + optional screenshots (via devloom-vision)
9
+
10
+ DO:
11
+ - classify domain: WEB_CREATIVE | PRODUCT_APP | GAME_UI | DATA_VISUALIZATION | GENERIC_UI | EXISTING_DESIGN_SYSTEM
12
+ - EXISTING_DESIGN_SYSTEM wins when a real system exists: extend it, never invent a parallel language
13
+ - extract user goal + audience; set information hierarchy (web/app: primary>secondary>tertiary; game: CRITICAL>ACTIVE>CONTEXTUAL>AMBIENT)
14
+ - inspect existing visual system: tokens, palette, type, spacing, components, icons, motion
15
+ - for substantial NEW graphical work define three internal directions, each with: concept | hierarchy | typography | layout | palette | density | shape | motion | interaction | responsive | explicit anti-pattern
16
+ - SAFE: coherent evolution of the existing language
17
+ - BOLD: pushes one axis hard (type / palette / composition), stays legible
18
+ - UNEXPECTED: re-frames the concept, still fits the domain and goal
19
+ - SELECT EXACTLY ONE direction for implementation — never three complete apps (unless max-quality mode explicitly requested)
20
+ - define responsive strategy (target viewports) + motion budget (or NONE)
21
+ - read existing design.md before subsequent visual work; update ONLY intentionally changed sections; never rewrite from zero without cause
22
+ - emit DESIGN_FILE for the orchestrator to persist (this skill has no write access to app code)
23
+
24
+ RULES:
25
+ - no implementation code — decisions only
26
+ - vague adjectives are not a direction: translate premium/modern/futuristic/Awwwards-like into executable constraints (see design-grounding)
27
+ - reject default AI aesthetics unless the brief demands them
28
+ - OpenDesign MCP optional: use for grounding when present, never required
29
+
30
+ CHECK: domain chosen | hierarchy explicit | one direction selected | design.md delta described
31
+
32
+ OUT: VISUAL_DIRECTION_COMPLETE (DOMAIN | DIRECTION_SELECTED | DESIGN_FILE | CHANGES_SUMMARY)
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: web-design
3
+ description: Art direction for landing pages, portfolios, brand/marketing sites, editorial and campaign pages — composition and typography over component soup.
4
+ ---
5
+
6
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl|~/.config/opencode/devloom-ai/workflow.dsl
7
+ DOMAIN: WEB_CREATIVE (portfolio, landing, brand, marketing, editorial, campaign)
8
+
9
+ PRIORITIZE:
10
+ - art direction: one governing visual idea per page, expressed consistently
11
+ - typography: deliberate scale ratios, contrast of voice (weight/size/case), typographic rhythm; type IS the layout
12
+ - composition: asymmetry allowed, alignment systems explicit, negative space as a designed element
13
+ - visual pacing: variation of density down the page — breathe, compress, breathe; no uniform stack
14
+ - motion: staged entrances/scroll only when they direct attention; content readable with JS disabled
15
+ - coherent originality: a visitor should recognize the site from a cropped screenshot
16
+
17
+ AVOID (default AI patterns — reject unless the brief demands them):
18
+ - hero + three cards + CTA as the entire page
19
+ - card soup and pill soup
20
+ - generic purple/blue gradient hero
21
+ - meaningless glassmorphism and arbitrary glow
22
+ - decorative blobs / abstract 3D filler
23
+ - giant text with no compositional purpose
24
+ - carousels hiding content; parallax that breaks scrolling
25
+ - stock-photo dependence instead of designed layout
26
+
27
+ RESPONSIVE: design mobile-first framing decisions, not desktop shrunk down; reflow preserves hierarchy (never "stack everything"); test 390x844 + 1440x1000.
28
+
29
+ A11Y: WCAG-AA contrast for all text-over-image; focus visible; landmarks + heading order; reduced-motion honored.
30
+
31
+ CHECK: governing idea stated | type system deliberate | pacing varies | no banned pattern used | hierarchy survives 390px
32
+
33
+ OUT: WEB_DESIGN_SPEC (concept | type system | section rhythm | motion budget | DON'Ts) — implementation stays with devloom-developer
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: loop-changelog-drafter
3
+ description: Draft release notes from commits since last tag. L1 read-only.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ DRAFT:
8
+ - find last release tag: git describe --tags --abbrev=0
9
+ - get commits since tag: git log --oneline <tag>..HEAD
10
+ - categorize by conventional commit prefix:
11
+ - feat: → Features
12
+ - fix: → Bug Fixes
13
+ - docs: → Documentation
14
+ - chore: → Chores/Maintenance
15
+ - refactor: → Refactoring
16
+ - test: → Testing
17
+
18
+ OUTPUT:
19
+ - write draft to .opencode/devloom/reports/changelog-YYYY-MM-DD.md
20
+ - format per template below
21
+
22
+ ```markdown
23
+ # Changelog DRAFT YYYY-MM-DD
24
+ ## Features
25
+ - commit messages...
26
+ ## Bug Fixes
27
+ - ...
28
+ ## Chores
29
+ - ...
30
+ ```
31
+ OUT: .opencode/devloom/reports/changelog-YYYY-MM-DD.md
32
+ CHK: commits categorized correctly | tag found | report written
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: loop-ci-sweeper
3
+ description: Detect and fix CI failures with worktree-based changes (L2).
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ DETECT:
8
+ - check latest CI run status via gh CLI or commit status API
9
+ - parse failure output — classify as test/lint/build/typecheck
10
+ - create worktree branch for each fix
11
+
12
+ FIX:
13
+ - lint failures: auto-fix with linter, no manual changes
14
+ - test failures: inspect failing test, fix implementation (not the test)
15
+ - build failures: check for missing imports, syntax errors, config changes
16
+ - typecheck failures: fix type errors, never use `any` as workaround
17
+
18
+ VERIFY:
19
+ - run full test suite: npm test
20
+ - run typecheck: npx tsc --noEmit
21
+ - log outcome to run-log.json
22
+
23
+ OUT: fixed CI | worktree merged | run-log updated
24
+ CHK: test suite passes | typecheck clean | no new defects
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: loop-constraints
3
+ description: Load and validate loop-constraints.md before each tick, build guard string for agent injection.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ LOAD_CONSTRAINTS:
8
+ - read .opencode/devloom/loop/loop-constraints.md
9
+ - parse numbered rules (lines matching /^\d+\.\s/)
10
+ - build [loop-constraints] guard string
11
+ - inject into agent system prompt before each delegation
12
+
13
+ DEFAULT_RULES:
14
+ - run tests before any commit
15
+ - never push without human review on denylisted paths
16
+ - pause if daily token budget exceeded
17
+ - L1 level: report-only, no source code edits
18
+ - all loop agents must log outcomes to run-log.json
19
+
20
+ OUT: constraints guard string injected into agent system prompt
21
+ CHK: rules parsed correctly | guard string non-empty or empty gracefully
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: loop-dependency-sweeper
3
+ description: Scan and patch outdated dependencies (L2 — patch-only auto-updates, minor/major reported).
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ SCAN:
8
+ - run npm outdated to list outdated packages
9
+ - categorize updates: patch (safe), minor (report), major (report)
10
+ - check vulnerabilities: npm audit
11
+
12
+ UPDATE_RULES:
13
+ - patch updates (1.2.3 → 1.2.4): auto-apply
14
+ - minor updates (1.2.3 → 1.3.0): log to report, no apply
15
+ - major updates (1.2.3 → 2.0.0): log to report, no apply
16
+ - vulnerability fixes: apply regardless of semver if patch available
17
+
18
+ VERIFY:
19
+ - run full test suite after each patch batch
20
+ - log updated packages to run-log.json
21
+ - report non-patch updates to .opencode/devloom/reports/deps-YYYY-MM-DD.md
22
+
23
+ OUT: patches applied | deps report written | run-log updated
24
+ CHK: test suite passes | only patch auto-applied | vulnerabilities fixed
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: loop-design-audit
3
+ description: "Two-mode full audit: L1 catalogs UI/UX + functional issues (broken/missing actions, dead-ends, API mismatches); L2 fix applies unified design + functional fixes in worktrees until all verified"
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl|~/.config/opencode/devloom-ai/verify.dsl
6
+
7
+ AUDIT:
8
+ - enumerate: read target URL list from args, normalize each to canonical page-id
9
+ - visit each page, wait for full render
10
+
11
+ UI_CHECK:
12
+ - catalog: buttons, links, inputs, modals, forms, tables, tabs, navigation, cards, badges, icons, avatars, tooltips, progress, notifications, loading/skeleton, error, empty states
13
+ - record per-element: position, CSS (color, spacing, font, border-radius, shadow)
14
+ - note responsiveness: breakpoints, layout shifts, overflow
15
+
16
+ FUNCTIONAL_CHECK:
17
+ - test every button: click → verify expected action fires (not dead, not error)
18
+ - test every link: navigate → verify target exists (not 404, not dead-end)
19
+ - test every form: submit → verify validation + submission + success/error feedback
20
+ - test every modal: open → verify close mechanism + overlay + content
21
+ - test every table: sort/pagination/row-action → verify functional
22
+ - test every tab: switch → verify content loads + active state
23
+ - test every API call: verify endpoint exists + params correct + error handling present
24
+ - test every async action: verify loading state + success state + error state present
25
+ - catalog MISSING actions: CRUD where needed, validations absent, feedback missing
26
+ - catalog DEAD-END flows: journeys leading nowhere, missing back/return, no success/failure feedback
27
+ - catalog STATE issues: forms not resetting, stale data, race conditions, data not refreshing after mutation
28
+
29
+ CATALOG INCONSISTENCIES:
30
+ - UI: color mismatches, spacing violations, typography drift, border-radius, shadow, icon style, button variants, form field asymmetry, table styling, modal differences, nav inconsistency, hover/focus/active states
31
+ - Functional: broken actions (click does nothing), broken links (404), form validation missing, API error handling absent, loading/error/empty states missing, dead-end flows, stale state
32
+
33
+ PRODUCE SPEC:
34
+ - distill canonical UI values per component variant
35
+ - define functional contract: every action has handler, every form validates, every API has error handling, every flow has feedback
36
+ - write unified spec to .opencode/devloom/reports/design-system-spec.md
37
+ - write audit report to .opencode/devloom/reports/design-audit-YYYY-MM-DD.md
38
+ - tag each issue with category (ui|functional|missing-action|broken-action|api|state) + severity (critical|high|medium|low)
39
+
40
+ FIX:
41
+ - init: read progress from .opencode/devloom/loop/progress.json
42
+ - pick: select next item with status "pending" (ordered by severity: critical first)
43
+ - implement per item:
44
+ - create worktree branch: devloom/design-audit/{PAGE-ID}
45
+ - apply design system spec values to UI elements on the page
46
+ - fix broken actions: wire up handlers, fix API calls, add error handling
47
+ - add missing actions: implement missing CRUD, validations, feedback states
48
+ - resolve dead-end flows: add navigation, success/failure feedback
49
+ - fix state issues: form resets, data refresh, race condition guards
50
+ - commit changes in worktree
51
+ - verify each item:
52
+ - re-scan page against spec + functional contract
53
+ - confirm: UI matches + actions work + forms validate + links resolve + API errors handled + states present
54
+ - if failures: log, increment retry, go back to implement (max 3)
55
+ - if pass: mark item "verified", write progress.json
56
+ - loop: if not all verified and budget remains → continue (next tick)
57
+ - stop: all verified OR budget exhausted OR max retries hit OR user pauses
58
+
59
+ CONSTRAINTS (binding):
60
+ - L1 mode: no source file edits
61
+ - L2 mode: edits only in worktrees (branch: devloom/design-audit/{page-id})
62
+ - max 3 retries per item
63
+ - each item must pass verifier before progressing
64
+ - log all outcomes to run-log.json
65
+
66
+ OUT: .opencode/devloom/reports/design-audit-YYYY-MM-DD.md | .opencode/devloom/reports/design-system-spec.md
67
+ CHK: audit produced | audit=no-source-edits | fix=all-items-verified | every-action-works | every-form-validates | every-link-resolves | every-api-has-error-handling | progress-written-to-disk
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: loop-issue-triage
3
+ description: Triage new issues with labels and priority. L1 read-only.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ TRIAGE:
8
+ - list open issues without labels: gh issue list --state open --limit 20
9
+ - for each issue, read title and body
10
+
11
+ CLASSIFY:
12
+ - Bug: unexpected behavior, crash, error message
13
+ - Feature: new capability request
14
+ - Question: how-to, configuration help
15
+ - Docs: documentation gap or error
16
+
17
+ ASSIGN_PRIORITY:
18
+ - High: security, data loss, production blocker
19
+ - Medium: feature request, non-critical bug
20
+ - Low: cosmetic, nice-to-have, question
21
+
22
+ REPORT:
23
+ - write to .opencode/devloom/reports/triage-YYYY-MM-DD.md
24
+ - per issue: #N: [type] priority=priority suggested_labels=[...]
25
+
26
+ OUT: .opencode/devloom/reports/triage-YYYY-MM-DD.md
27
+ CHK: all unlabeled issues processed | classification correct | report written
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: loop-post-merge-cleanup
3
+ description: Clean up stale branches and orphaned worktrees. L1 report-only, no destructive actions.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ FIND:
8
+ - list all worktrees from .devloom-worktrees/.registry.json
9
+ - for each branch, check if merged into main/master
10
+ - check branch age — flag >30 days as stale
11
+ - check for orphaned worktree directories (not in registry)
12
+
13
+ CLASSIFY:
14
+ - merged worktrees: safe to remove, recommend in report
15
+ - stale unmerged (>30 days): flag for human review
16
+ - orphaned directories: list paths, recommend manual cleanup
17
+ - active worktrees (clean, recently used): no action needed
18
+
19
+ REPORT:
20
+ - write to .opencode/devloom/reports/cleanup-YYYY-MM-DD.md
21
+ - include per entry: branch name, age, merge status, recommended action
22
+
23
+ OUT: .opencode/devloom/reports/cleanup-YYYY-MM-DD.md
24
+ CHK: report written | no destructive actions taken | no false positives
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: loop-pr-babysitter
3
+ description: Watch open PRs, push stale ones forward, fix blocked CI, merge approved. L2 with verifier review.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ ANALYZE:
8
+ - list open PRs: gh pr list --state open
9
+ - check each PR's last activity timestamp
10
+ - flag PRs idle >2 hours as candidates for action
11
+ - read PR diff and comments to understand status
12
+
13
+ ACT:
14
+ - stale PR: rebase or resolve conflicts
15
+ - blocked PR: identify blocker, ping reviewer or fix deps
16
+ - draft PR with failing CI: fix CI in linked worktree
17
+ - approved PR: merge if CI passes
18
+
19
+ SAFETY:
20
+ - max 3 attempts per PR per tick
21
+ - never force-push
22
+ - never close PRs automatically
23
+ - log all actions to run-log.json
24
+
25
+ OUT: PRs advanced or merged | run-log updated
26
+ CHK: max 3 attempts enforced | no force-push | no auto-close
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: loop-triage
3
+ description: Daily triage loop — check PRs, CI, branches, worktrees, budget. L1 report-only.
4
+ ---
5
+ LOAD: ~/.config/opencode/devloom-ai/core.dsl
6
+
7
+ TICK:
8
+ - check open PR count and age (gh pr list / git log)
9
+ - check CI status from recent commits (git log --oneline -5)
10
+ - list stale branches older than 7 days (git branch -r)
11
+ - check unmerged worktrees (.devloom-worktrees/.registry.json)
12
+ - check token budget remaining (.opencode/devloom/loop/budget.json)
13
+
14
+ REPORT:
15
+ - write markdown to .opencode/devloom/reports/daily-YYYY-MM-DD.md
16
+ - include: summary table, recommendations, budget status
17
+
18
+ CONSTRAINTS (binding):
19
+ - no source file edits
20
+ - no test creation or modification
21
+ - no push or PR creation
22
+ - log outcome to run-log.json
23
+
24
+ OUT: .opencode/devloom/reports/daily-YYYY-MM-DD.md
25
+ CHK: report written | no source files touched | budget checked