devloom 1.0.0 → 1.1.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/.ai/core.dsl +44 -0
- package/.ai/skills.dsl +39 -0
- package/.ai/verify.dsl +97 -0
- package/.ai/workflow.dsl +81 -0
- package/.opencode/themes/devloom-night-owl.json +103 -0
- package/GUIDE.md +547 -114
- package/README.md +557 -109
- package/SECURITY.md +93 -0
- package/agents/devloom-developer-flash.md +27 -0
- package/agents/devloom-developer-senior.md +28 -0
- package/agents/devloom-developer.md +18 -56
- package/agents/devloom-documenter-flash.md +24 -0
- package/agents/devloom-documenter.md +14 -57
- package/agents/devloom-orchestrator.md +232 -356
- package/agents/devloom-planner-flash.md +30 -0
- package/agents/devloom-planner-senior.md +31 -0
- package/agents/devloom-planner.md +32 -0
- package/agents/devloom-qa-flash.md +28 -0
- package/agents/devloom-qa.md +18 -84
- package/agents/devloom-security-senior.md +31 -0
- package/agents/devloom-security.md +30 -0
- package/agents/devloom-verifier.md +29 -0
- package/agents/devloom-vision.md +109 -0
- package/agents/devloom-visual-critic.md +98 -0
- package/agents/devloom-visual-director.md +80 -0
- package/commands/devloom-agents.md +49 -0
- package/commands/devloom-auto.md +11 -0
- package/commands/devloom-context.md +82 -0
- package/commands/devloom-deepseek.md +11 -0
- package/commands/devloom-free.md +11 -0
- package/commands/devloom-go-economy.md +11 -0
- package/commands/devloom-go-flash.md +11 -0
- package/commands/devloom-go.md +11 -0
- package/commands/devloom-init.md +28 -50
- package/commands/devloom-loop-status.md +25 -0
- package/commands/devloom-loop.md +36 -0
- package/commands/devloom-mimo.md +11 -0
- package/commands/devloom-plan.md +13 -0
- package/commands/devloom-refresh.md +22 -0
- package/commands/devloom-resume.md +30 -49
- package/commands/devloom-save.md +69 -0
- package/commands/devloom-status.md +9 -18
- package/commands/devloom.md +99 -67
- package/dist/agents.d.ts +30 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +139 -0
- package/dist/agents.js.map +1 -0
- package/dist/bootstrap.d.ts +56 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +116 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/constraints.d.ts +5 -0
- package/dist/constraints.d.ts.map +1 -0
- package/dist/constraints.js +45 -0
- package/dist/constraints.js.map +1 -0
- package/dist/context.d.ts +42 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +636 -0
- package/dist/context.js.map +1 -0
- package/dist/guard.d.ts +19 -0
- package/dist/guard.d.ts.map +1 -0
- package/dist/guard.js +418 -0
- package/dist/guard.js.map +1 -0
- package/dist/loop.d.ts +64 -0
- package/dist/loop.d.ts.map +1 -0
- package/dist/loop.js +164 -0
- package/dist/loop.js.map +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +101 -1
- package/dist/plugin.js.map +1 -1
- package/dist/tui-agents.d.ts +61 -0
- package/dist/tui-agents.d.ts.map +1 -0
- package/dist/tui-agents.js +89 -0
- package/dist/tui-agents.js.map +1 -0
- package/dist/tui.d.ts +6 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +92 -0
- package/dist/tui.js.map +1 -0
- package/dist/worktree.d.ts +46 -0
- package/dist/worktree.d.ts.map +1 -0
- package/dist/worktree.js +272 -0
- package/dist/worktree.js.map +1 -0
- package/package.json +46 -6
- package/patterns/changelog-drafter.md +38 -0
- package/patterns/ci-sweeper.md +40 -0
- package/patterns/daily-triage.md +37 -0
- package/patterns/dependency-sweeper.md +40 -0
- package/patterns/design-audit.md +63 -0
- package/patterns/issue-triage.md +37 -0
- package/patterns/post-merge-cleanup.md +34 -0
- package/patterns/pr-babysitter.md +37 -0
- package/patterns/registry.yaml +52 -0
- package/postinstall.mjs +259 -63
- package/project/README.md +29 -0
- package/protocol/agent-contracts.md +27 -0
- package/protocol/artifact-system.md +53 -0
- package/protocol/model-routing.md +185 -0
- package/protocol/orchestrator-core.md +43 -0
- package/protocol/project-system.md +45 -0
- package/protocol/rules.md +18 -0
- package/protocol/verification-policy.md +48 -0
- package/scripts/loop-run.mjs +205 -0
- package/scripts/model-capabilities.mjs +169 -0
- package/scripts/plugin-cache.mjs +269 -0
- package/scripts/profile.mjs +691 -0
- package/scripts/visual-benchmark.mjs +149 -0
- package/scripts/worktree.mjs +445 -0
- package/skills/build/development.md +33 -0
- package/skills/build/live-docs.md +38 -0
- package/skills/build/simplify.md +50 -0
- package/skills/build/vision-analysis.md +98 -0
- package/skills/design/app-design.md +31 -0
- package/skills/design/design-grounding.md +30 -0
- package/skills/design/design-system.md +27 -0
- package/skills/design/game-design.md +35 -0
- package/skills/design/motion-design.md +34 -0
- package/skills/design/visual-direction.md +32 -0
- package/skills/design/web-design.md +33 -0
- package/skills/loop/changelog-drafter.md +32 -0
- package/skills/loop/ci-sweeper.md +24 -0
- package/skills/loop/constraints.md +21 -0
- package/skills/loop/dependency-sweeper.md +24 -0
- package/skills/loop/design-audit.md +67 -0
- package/skills/loop/issue-triage.md +27 -0
- package/skills/loop/post-merge-cleanup.md +24 -0
- package/skills/loop/pr-babysitter.md +26 -0
- package/skills/loop/triage.md +25 -0
- package/skills/loop/verifier.md +20 -0
- package/skills/meta/skill-discovery.md +23 -0
- package/skills/plan/planning.md +27 -0
- package/skills/plan/verification-planning.md +40 -0
- package/skills/review/security-review.md +63 -0
- package/skills/ship/documentation.md +11 -0
- package/skills/verify/app-verification.md +19 -0
- package/skills/verify/quality-assurance.md +17 -0
- package/skills/verify/visual-critique.md +30 -0
- package/skills/verify/visual-quality-gate.md +29 -0
- package/skills/verify/visual-regression.md +25 -0
- package/agents/devloom-analyst.md +0 -83
- 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
|