opencode-wait-a-minute 0.0.0-stage → 1.1.0-rc.10
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/LICENSE +21 -0
- package/README.md +318 -2
- package/index.js +1836 -0
- package/package.json +70 -4
- package/skills/codebase-design/SKILL.md +114 -0
- package/skills/design-contract/SKILL.md +27 -0
- package/skills/design-critique/SKILL.md +19 -0
- package/skills/design-system/SKILL.md +17 -0
- package/skills/design-system/references/image-analysis.md +14 -0
- package/skills/design-system/references/tokens.md +32 -0
- package/skills/design-system/references/ui-rules.md +14 -0
- package/skills/diagnosing-bugs/SKILL.md +138 -0
- package/skills/frontend-design/SKILL.md +36 -0
- package/skills/handoff/SKILL.md +16 -0
- package/skills/improve-codebase-architecture/SKILL.md +71 -0
- package/skills/linter-negative/SKILL.md +74 -0
- package/skills/no-slop-ui/SKILL.md +26 -0
- package/skills/prototype/SKILL.md +26 -0
- package/skills/registry.json +44087 -0
- package/skills/tastemaker/SKILL.md +8 -0
- package/skills/tastemaker/references/tastemaker.md +14 -0
- package/skills/tdd/SKILL.md +38 -0
- package/skills/visual-review/SKILL.md +103 -0
- package/skills/visual-review/references/review-gates.md +42 -0
- package/skills/visual-review/references/surface-archetypes.md +37 -0
- package/skills/wizard/SKILL.md +44 -0
- package/skills/writing-for-agents/SKILL.md +81 -0
- package/src/cognition/cognition-store.js +251 -0
- package/src/cognition/cognitive-state.js +126 -0
- package/src/cognition/hypothesis-manager.js +113 -0
- package/src/cognition/observation-engine.js +112 -0
- package/src/cognition/observation-provenance.js +268 -0
- package/src/context/active-context-boundary.js +68 -0
- package/src/context/assembly.js +494 -0
- package/src/context/assessment-rules.js +55 -0
- package/src/context/capsule-staleness.js +267 -0
- package/src/context/capsules.js +2 -0
- package/src/context/compare-array.js +98 -0
- package/src/context/compare-object.js +89 -0
- package/src/context/compare-values.js +42 -0
- package/src/context/context-assembly-contract.js +71 -0
- package/src/context/context-budget-manager.js +232 -0
- package/src/context/context-builder.js +49 -0
- package/src/context/context-cache.js +55 -0
- package/src/context/context-capture.js +243 -0
- package/src/context/context-classification.js +199 -0
- package/src/context/context-compaction.js +179 -0
- package/src/context/context-decision-audit.js +267 -0
- package/src/context/context-demotion.js +173 -0
- package/src/context/context-dictionary.js +106 -0
- package/src/context/context-drift-detection.js +225 -0
- package/src/context/context-evaluation.js +374 -0
- package/src/context/context-event-ingress.js +100 -0
- package/src/context/context-event-normalization.js +224 -0
- package/src/context/context-feedback-loop.js +216 -0
- package/src/context/context-freshness.js +21 -0
- package/src/context/context-graph-builder.js +71 -0
- package/src/context/context-graph.js +451 -0
- package/src/context/context-history-relevance.js +321 -0
- package/src/context/context-interception.js +145 -0
- package/src/context/context-invalidation-events.js +154 -0
- package/src/context/context-lifecycle.js +170 -0
- package/src/context/context-loop-prevention.js +347 -0
- package/src/context/context-manager.js +340 -0
- package/src/context/context-memory-layers.js +265 -0
- package/src/context/context-minimality.js +166 -0
- package/src/context/context-normalization.js +130 -0
- package/src/context/context-optimization-metrics.js +434 -0
- package/src/context/context-output-policy.js +135 -0
- package/src/context/context-pack-authority.js +157 -0
- package/src/context/context-promotion.js +172 -0
- package/src/context/context-query-contract.js +101 -0
- package/src/context/context-ranking.js +164 -0
- package/src/context/context-rate-distortion.js +261 -0
- package/src/context/context-recovery.js +209 -0
- package/src/context/context-retrieval-integration.js +60 -0
- package/src/context/context-retrieval.js +93 -0
- package/src/context/context-router.js +457 -0
- package/src/context/context-routing-evaluation.js +331 -0
- package/src/context/context-routing-observability.js +296 -0
- package/src/context/context-routing-shadow.js +237 -0
- package/src/context/context-scope.js +181 -0
- package/src/context/context-snapshot.js +226 -0
- package/src/context/context-source-registry.js +95 -0
- package/src/context/context-sufficiency-gate.js +120 -0
- package/src/context/context-sufficiency-oracle.js +167 -0
- package/src/context/context-telemetry.js +176 -0
- package/src/context/context.js +633 -0
- package/src/context/dependency-closure.js +246 -0
- package/src/context/page-fault-tracker.js +275 -0
- package/src/context/prompt-engine.js +74 -0
- package/src/context/runtime-context-graph.js +260 -0
- package/src/context/selection.js +2 -0
- package/src/context/session.js +2 -0
- package/src/context/sufficiency-contract.js +300 -0
- package/src/context/tokenizer.js +17 -0
- package/src/context-benchmark-router.mjs +125 -0
- package/src/evidence/evidence-engine.js +161 -0
- package/src/evidence/evidence-factory.js +3 -0
- package/src/evidence/evidence-freshness.js +463 -0
- package/src/evidence/evidence-gap.js +76 -0
- package/src/evidence/evidence-lineage.js +525 -0
- package/src/evidence/evidence.js +136 -0
- package/src/evidence/freshness-validation.js +187 -0
- package/src/evidence/lineage.js +4 -0
- package/src/execution/action-evaluation.js +179 -0
- package/src/execution/circuit-breaker.js +70 -0
- package/src/execution/claim-interception.js +63 -0
- package/src/execution/execution-engine.js +258 -0
- package/src/execution/execution-intent.js +69 -0
- package/src/execution/execution-state.js +89 -0
- package/src/execution/formatting.js +60 -0
- package/src/execution/l1-sanitize.js +16 -0
- package/src/execution/l2-resource-guards.js +19 -0
- package/src/execution/l3-invariant-checker.js +5 -0
- package/src/execution/l4-containment.js +6 -0
- package/src/execution/runtime-guards.js +106 -0
- package/src/execution/strategy-identity.js +162 -0
- package/src/execution/tool-interceptor.js +7 -0
- package/src/execution/tool-result-classifier.js +63 -0
- package/src/integration/canary-deploy.js +143 -0
- package/src/integration/collector.js +59 -0
- package/src/integration/error-recovery.js +6 -0
- package/src/integration/event-bus.js +66 -0
- package/src/integration/health-checker.js +57 -0
- package/src/integration/logger.js +39 -0
- package/src/integration/message-handler.js +611 -0
- package/src/integration/opencode-db.js +153 -0
- package/src/integration/orchestration.js +419 -0
- package/src/integration/part-provenance.js +65 -0
- package/src/integration/rate-limiter.js +55 -0
- package/src/integration/release-gate.js +336 -0
- package/src/integration/rollback-manager.js +164 -0
- package/src/integration/router-adapter.js +269 -0
- package/src/integration/telemetry.js +45 -0
- package/src/integration/update-checker.js +10 -0
- package/src/persistence/event-sourcing.js +75 -0
- package/src/persistence/memory.js +501 -0
- package/src/persistence/migration-runner.js +16 -0
- package/src/persistence/persistence-manager.js +39 -0
- package/src/persistence/transaction-log.js +157 -0
- package/src/policy/action-capabilities.js +116 -0
- package/src/policy/action-policy.js +4 -0
- package/src/policy/assessment-engine.js +104 -0
- package/src/policy/assumption-tracking.js +66 -0
- package/src/policy/budget-enforcer.js +7 -0
- package/src/policy/config-validator.js +102 -0
- package/src/policy/execution-assessment.js +142 -0
- package/src/policy/failure-classification.js +5 -0
- package/src/policy/feature-flags.js +65 -0
- package/src/policy/governance-enforcement.js +118 -0
- package/src/policy/locale.js +15 -0
- package/src/policy/multi-signer.js +151 -0
- package/src/policy/policy-state-machine.js +97 -0
- package/src/policy/ponytail-constraint.js +38 -0
- package/src/policy/project-inspector.js +93 -0
- package/src/policy/query-builder.js +14 -0
- package/src/policy/request-classifier.js +79 -0
- package/src/policy/risk-engine.js +266 -0
- package/src/policy/scope-enforcement.js +140 -0
- package/src/policy/secret-scanner.js +68 -0
- package/src/policy/skill-routing.js +104 -0
- package/src/policy/strategy-capabilities.js +211 -0
- package/src/policy/strategy.js +6 -0
- package/src/policy/uncertainty.js +117 -0
- package/src/shared/container.js +44 -0
- package/src/shared/decision-types.js +24 -0
- package/src/shared/simple-test.js +160 -0
- package/src/shared/wam-events.js +52 -0
- package/src/skills/engine.js +1705 -0
- package/src/skills/skill-registry.js +19 -0
- package/src/skills/skill-routing.js +340 -0
- package/src/state/lifecycle-manager.js +113 -0
- package/src/state/operational-state.js +198 -0
- package/src/state/projections.js +47 -0
- package/src/state/replay-engine.js +5 -0
- package/src/state/requirement-ownership.js +20 -0
- package/src/state/requirement-state.js +152 -0
- package/src/state/run-event-identity.js +172 -0
- package/src/state/state-engine.js +19 -0
- package/src/state/state-machine.js +119 -0
- package/src/state/state-schema.js +318 -0
- package/src/state/state-store.js +335 -0
- package/src/state/state-transition.js +84 -0
- package/src/state/task-dependencies.js +287 -0
- package/src/state/task-execution.js +217 -0
- package/src/state/task-lifecycle.js +59 -0
- package/src/state/task-runs.js +361 -0
- package/src/state/task-state-file.js +86 -0
- package/src/state/task-state.js +41 -0
- package/src/state/task-status.js +54 -0
- package/src/state/task-store.js +48 -0
- package/src/state/wam-state.js +148 -0
- package/src/verification/completion-gate-simple.js +8 -0
- package/src/verification/completion-gate.js +183 -0
- package/src/verification/contract.js +9 -0
- package/src/verification/contradiction-resolution.js +255 -0
- package/src/verification/diagnostic-engine.js +659 -0
- package/src/verification/false-completion-prevention.js +100 -0
- package/src/verification/hook-validator.js +6 -0
- package/src/verification/requirements.js +6 -0
- package/src/verification/verification-context.js +162 -0
- package/src/verification/verification-lifecycle.js +66 -0
- package/src/verification/verification-model.js +89 -0
- package/src/verification/verification-persistence.js +129 -0
- package/src/verification/verification-policy.js +127 -0
- package/src/verification/verification.js +415 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: no-slop-ui
|
|
3
|
+
description: "Build or review frontend UI for clean, restrained, human-designed interfaces without generic AI visual patterns."
|
|
4
|
+
metadata:
|
|
5
|
+
version: "0.3.0"
|
|
6
|
+
---
|
|
7
|
+
# No Slop UI
|
|
8
|
+
|
|
9
|
+
You are building UI for a human audience. The goal is functional, honest, clean. Not impressive. Not dramatic. **Normal.**
|
|
10
|
+
|
|
11
|
+
If a design decision feels like the easy AI default — it probably is. Pick the harder, cleaner option.
|
|
12
|
+
|
|
13
|
+
Read `references/banned-patterns.md` for the full banned list before writing any UI code.
|
|
14
|
+
Read `references/colour-palettes.md` when you need to pick colours.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Activation Boundary
|
|
18
|
+
|
|
19
|
+
Use this skill only when the user explicitly asks for UI design, frontend implementation, visual polish, design review, or when the current task's primary deliverable is a visible interface. Do not activate it for backend-only tasks, copywriting, diagrams, infrastructure, or general code review.
|
|
20
|
+
|
|
21
|
+
Treat this skill as a visual-quality layer. It must not override product requirements, accessibility, security, localization, data correctness, or the repository's existing design system. If those conflict with a no-slop rule, preserve the user requirement and explain the tradeoff.
|
|
22
|
+
|
|
23
|
+
## The Standard
|
|
24
|
+
|
|
25
|
+
Think **Linear. Raycast. Stripe. GitHub.** They don't try to grab attention. They just work.
|
|
26
|
+
|
|
27
|
+
**What normal looks like:**
|
|
28
|
+
- Sidebar: 240–260px fixed, solid background, 1px border-right. No floating shells, no rounded outer corners.
|
|
29
|
+
- Cards: 8–12px radius max, subtle 1px border, shadow max `0 2px 8px rgba(0,0,0,0.08)`. No glow, no float.
|
|
30
|
+
- Buttons: solid fill or simple border, 6–10px radius max. No pills, no gradients.
|
|
31
|
+
- Typography: clear hierarchy, 14–16px body, system font or single sans-serif. No mixed serif/sans.
|
|
32
|
+
- Spacing: 4/8/12/16/24/32px scale. Consistent. No random gaps.
|
|
33
|
+
- Borders: 1px solid, subtle colour. No thick decorative borders, no gradient borders.
|
|
34
|
+
- Transitions: 100–200ms ease. Opacity or colour only. No bouncy, no transforms.
|
|
35
|
+
- Inputs: solid border, simple focus ring. Labels above fields.
|
|
36
|
+
- Icons: 16–20px, monochrome or subtle colour, no decorative backgrounds.
|
|
37
|
+
|
|
38
|
+
## Colour Priority
|
|
39
|
+
|
|
40
|
+
1. **Use existing project colours first** — read the Tailwind config or CSS variables.
|
|
41
|
+
2. If no palette exists — pick from `references/colour-palettes.md`.
|
|
42
|
+
3. Never invent random colour combinations.
|
|
43
|
+
|
|
44
|
+
## Stack-Specific Notes
|
|
45
|
+
|
|
46
|
+
**shadcn/ui + Tailwind:**
|
|
47
|
+
- Use shadcn components as-is — don't re-invent what's already there
|
|
48
|
+
- Respect the existing CSS variable system (`--background`, `--foreground`, `--primary` etc.)
|
|
49
|
+
- Don't override component defaults unless there's a clear product reason
|
|
50
|
+
|
|
51
|
+
**Plain HTML dashboards:**
|
|
52
|
+
- Single-file is fine — keep it self-contained
|
|
53
|
+
- Use CSS custom properties for theming
|
|
54
|
+
- No external CDN dependencies unless absolutely necessary
|
|
55
|
+
|
|
56
|
+
## Hard Rules
|
|
57
|
+
|
|
58
|
+
- No floating glassmorphism panels
|
|
59
|
+
- No gradient backgrounds as decoration
|
|
60
|
+
- No oversized rounded corners (20px+ everywhere)
|
|
61
|
+
- No eyebrow labels (`<small>SECTION LABEL</small>` above headings)
|
|
62
|
+
- No hero sections inside internal dashboards
|
|
63
|
+
- No decorative copy ("Operational clarity without the clutter")
|
|
64
|
+
- No metric-card grid as the default dashboard layout
|
|
65
|
+
- No fake charts that exist to fill space
|
|
66
|
+
- No transform animations on hover
|
|
67
|
+
- No `Segoe UI`, `Trebuchet MS`, `Arial` font stacks
|
|
68
|
+
- No status dots via `::before` pseudo-elements
|
|
69
|
+
- No nav badges unless they carry real data
|
|
70
|
+
- No pill buttons everywhere
|
|
71
|
+
- No dramatic box shadows (24px+ blur)
|
|
72
|
+
- No mixed alignment (some left-aligned, some floating center)
|
|
73
|
+
|
|
74
|
+
Full banned list with examples: `references/banned-patterns.md`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# No Slop UI (Anti-Slop Guidelines)
|
|
2
|
+
|
|
3
|
+
Prevent interface degradation (slop) by enforcing strict design standards and quality gates.
|
|
4
|
+
|
|
5
|
+
## When to Activate
|
|
6
|
+
|
|
7
|
+
- When refactoring "quick fixes" or accumulated technical debt in UI
|
|
8
|
+
- When reviewing new component PRs or implementations
|
|
9
|
+
- Any time "slop" is detected: nested overrides, magic values, or layout drift
|
|
10
|
+
- Before finalizing design contracts or UI implementations
|
|
11
|
+
|
|
12
|
+
## Anti-Slop Core Rules
|
|
13
|
+
|
|
14
|
+
1. **No Magic Values**: Never use arbitrary pixel/rem values. Must use established design tokens (Tailwind classes or CSS variables).
|
|
15
|
+
2. **No Nested Overrides**: Absolute ban on deep CSS nesting (`.a .b .c .d`). All styles should be scoped to the component level or use global utility classes.
|
|
16
|
+
3. **Strict Grid/Spacing**: All spacing must align with the defined grid (4px/8px scale). No exceptions for "visual tweaks" (e.g., `ml-[3.33px]`).
|
|
17
|
+
4. **Contract Fidelity**: Implementation must match the design contract exactly. If the design needs changing, update the contract first, do not "fix it in the CSS".
|
|
18
|
+
5. **State Completeness**: Every component must define states (default, hover, focus, active, disabled, loading, error). If a state is missing, it is "slop".
|
|
19
|
+
6. **No "Just One" Styles**: Any style applied as a "one-off" must be converted to a token or utility class immediately.
|
|
20
|
+
|
|
21
|
+
## Enforcement Workflow
|
|
22
|
+
|
|
23
|
+
- **Detect**: Flag magic values, nested overrides, or inconsistent spacing.
|
|
24
|
+
- **Isolate**: Create a temporary fix or token if none exists.
|
|
25
|
+
- **Standardize**: Move the fix into the design system/Tailwind config.
|
|
26
|
+
- **Refactor**: Remove the temporary/hacked code.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prototype
|
|
3
|
+
description: Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prototype
|
|
7
|
+
|
|
8
|
+
A prototype is **throwaway code that answers a question**. The question decides the shape.
|
|
9
|
+
|
|
10
|
+
## Pick a branch
|
|
11
|
+
|
|
12
|
+
Identify which question is being answered, using the user's prompt, the surrounding code, or by asking if the user is around:
|
|
13
|
+
|
|
14
|
+
- **"Does this logic / state model feel right?"** → [LOGIC.md](LOGIC.md). Build a single shareable HTML file (free-play buttons plus tabbed guided walkthroughs) that pushes the state machine through cases that are hard to reason about on paper, and that a non-developer can drive.
|
|
15
|
+
- **"What should this look like?"** → [UI.md](UI.md). Generate several radically different UI variations on a single route, switchable via a URL search param and a floating bottom bar.
|
|
16
|
+
|
|
17
|
+
The two branches produce very different artifacts, so getting this wrong wastes the whole prototype. If the question is genuinely ambiguous and the user isn't reachable, default to whichever branch better matches the surrounding code (a backend module → logic; a page or component → UI) and state the assumption at the top of the prototype.
|
|
18
|
+
|
|
19
|
+
## Rules that apply to both
|
|
20
|
+
|
|
21
|
+
1. **Throwaway from day one, and clearly marked as such.** Locate the prototype code close to where it will actually be used (next to the module or page it's prototyping for) so context is obvious, but name it so a casual reader can see it's a prototype, not production. For throwaway UI routes, obey whatever routing convention the project already uses; don't invent a new top-level structure.
|
|
22
|
+
2. **Trivial to run.** A UI prototype starts from one command in the project's task runner: `pnpm <name>`, `python <path>`, `bun <path>`, etc. A logic demo is a single HTML file the user double-clicks. Either way, no thinking required to start it.
|
|
23
|
+
3. **No persistence by default.** State lives in memory. Persistence is the thing the prototype is _checking_, not something it should depend on. If the question explicitly involves a database, hit a scratch DB or a local file with a clear "PROTOTYPE, wipe me" name.
|
|
24
|
+
4. **Skip the polish.** No tests, no error handling beyond what makes the prototype _runnable_, no abstractions. The point is to learn something fast.
|
|
25
|
+
5. **Surface the state.** After every action (logic) or on every variant switch (UI), print or render the full relevant state so the user can see what changed.
|
|
26
|
+
6. **Capture it when done.** Fold any validated decision into the real code, then capture the prototype itself as a **primary source**: commit it to a throwaway branch, out of main, and leave a context pointer to that branch on the implementation issue. Capture the answer too (the verdict and the question it settled) in the issue or a commit. The main branch keeps only the validated decision.
|