@ziamana/bruine 0.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/LICENSE +21 -0
- package/README.md +315 -0
- package/THIRD_PARTY_NOTICES.md +24 -0
- package/cordis.patch.yml +166 -0
- package/dist/bin.js +5358 -0
- package/dist/compat.js +40 -0
- package/dist/plugins/approval.js +147 -0
- package/dist/plugins/headless.js +236 -0
- package/dist/plugins/herdr.js +470 -0
- package/dist/plugins/mcp.js +275 -0
- package/dist/plugins/modes.js +850 -0
- package/dist/plugins/render.js +3723 -0
- package/dist/plugins/repl.js +9589 -0
- package/dist/plugins/silence.js +234 -0
- package/dist/plugins/startup.js +42 -0
- package/dist/plugins/web-search.js +138 -0
- package/package.json +93 -0
- package/skills/code-review/SKILL.md +30 -0
- package/skills/git-workflow/SKILL.md +31 -0
- package/skills/impeccable/LICENSE +191 -0
- package/skills/impeccable/NOTICE.md +11 -0
- package/skills/impeccable/SKILL.md +87 -0
- package/skills/impeccable/reference/adapt.md +318 -0
- package/skills/impeccable/reference/adapt.native.md +58 -0
- package/skills/impeccable/reference/android.md +46 -0
- package/skills/impeccable/reference/animate.md +89 -0
- package/skills/impeccable/reference/audit.md +137 -0
- package/skills/impeccable/reference/audit.native.md +139 -0
- package/skills/impeccable/reference/bolder.md +33 -0
- package/skills/impeccable/reference/clarify.md +94 -0
- package/skills/impeccable/reference/colorize.md +86 -0
- package/skills/impeccable/reference/component-review.md +63 -0
- package/skills/impeccable/reference/craft-floor.md +44 -0
- package/skills/impeccable/reference/craft.md +5 -0
- package/skills/impeccable/reference/critique.md +806 -0
- package/skills/impeccable/reference/degraded/asset-producer.md +42 -0
- package/skills/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/impeccable/reference/degraded/finish-reviewer.md +38 -0
- package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/impeccable/reference/delight.md +70 -0
- package/skills/impeccable/reference/distill.md +111 -0
- package/skills/impeccable/reference/doctor.md +54 -0
- package/skills/impeccable/reference/document.md +416 -0
- package/skills/impeccable/reference/extract.md +69 -0
- package/skills/impeccable/reference/generate.md +101 -0
- package/skills/impeccable/reference/harden.md +345 -0
- package/skills/impeccable/reference/hooks.md +113 -0
- package/skills/impeccable/reference/init.md +131 -0
- package/skills/impeccable/reference/ios.md +51 -0
- package/skills/impeccable/reference/layout.md +84 -0
- package/skills/impeccable/reference/live-setup.md +104 -0
- package/skills/impeccable/reference/live.md +325 -0
- package/skills/impeccable/reference/mode-operate.md +21 -0
- package/skills/impeccable/reference/mode-persuade.md +19 -0
- package/skills/impeccable/reference/mode-read.md +21 -0
- package/skills/impeccable/reference/new-work.md +154 -0
- package/skills/impeccable/reference/onboard.md +234 -0
- package/skills/impeccable/reference/operate.md +61 -0
- package/skills/impeccable/reference/optimize.md +258 -0
- package/skills/impeccable/reference/overdrive.md +127 -0
- package/skills/impeccable/reference/polish.md +105 -0
- package/skills/impeccable/reference/quieter.md +99 -0
- package/skills/impeccable/reference/region-map.md +26 -0
- package/skills/impeccable/reference/routing.md +24 -0
- package/skills/impeccable/reference/shape.md +59 -0
- package/skills/impeccable/reference/typeset.md +80 -0
- package/skills/impeccable/reference/visualize.md +46 -0
- package/skills/impeccable/scripts/VERSION +1 -0
- package/skills/impeccable/scripts/command-metadata.json +98 -0
- package/skills/impeccable/scripts/data/font-index-failures.json +121 -0
- package/skills/impeccable/scripts/data/font-index.json +1 -0
- package/skills/impeccable/scripts/impeccable +206 -0
- package/skills/impeccable/scripts/impeccable.cmd +214 -0
- package/skills/impeccable/scripts/live-browser-dom.js +167 -0
- package/skills/impeccable/scripts/live-browser-ignores.js +242 -0
- package/skills/impeccable/scripts/live-browser-session.js +148 -0
- package/skills/impeccable/scripts/live-browser.js +13510 -0
- package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/make-interfaces-feel-better/LICENSE +21 -0
- package/skills/make-interfaces-feel-better/SKILL.md +187 -0
- package/skills/make-interfaces-feel-better/agents/openai.yaml +3 -0
- package/skills/make-interfaces-feel-better/animations.md +403 -0
- package/skills/make-interfaces-feel-better/icons.md +63 -0
- package/skills/make-interfaces-feel-better/performance.md +88 -0
- package/skills/make-interfaces-feel-better/surfaces.md +256 -0
- package/skills/make-interfaces-feel-better/typography.md +157 -0
- package/skills/playwright-cli/LICENSE +201 -0
- package/skills/playwright-cli/SKILL.md +489 -0
- package/skills/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright-cli/references/pr-attachments.md +60 -0
- package/skills/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright-cli/references/running-code.md +245 -0
- package/skills/playwright-cli/references/session-management.md +227 -0
- package/skills/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright-cli/references/tracing.md +139 -0
- package/skills/playwright-cli/references/video-recording.md +216 -0
- package/skills/remotion/SKILL.md +42 -0
- package/skills/systematic-debugging/SKILL.md +26 -0
- package/skills/thermo-nuclear-code-quality-review/LICENSE +21 -0
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +192 -0
- package/skills/write-tests/SKILL.md +35 -0
- package/skills/youtube-transcript/LICENSE +21 -0
- package/skills/youtube-transcript/SKILL.md +41 -0
- package/skills/youtube-transcript/package.json +8 -0
- package/skills/youtube-transcript/transcript.js +44 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
> **Additional context needed**: existing brand colors.
|
|
2
|
+
|
|
3
|
+
Introduce color as hierarchy, meaning, and atmosphere. Preserve confirmed brand and semantic conventions; do not replace a visual world under the guise of colorizing it.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Visitor mode
|
|
8
|
+
|
|
9
|
+
- **Persuade + Experience:** color may carry the voice and own large regions when the selected world calls for it.
|
|
10
|
+
- **Operate + Read:** color primarily encodes action, selection, status, wayfinding, and reading hierarchy. Rarity gives an accent force.
|
|
11
|
+
|
|
12
|
+
## Audit before choosing
|
|
13
|
+
|
|
14
|
+
Read DESIGN.md, tokens, assets, current themes, and representative states. Identify:
|
|
15
|
+
|
|
16
|
+
- which colors are confirmed brand commitments;
|
|
17
|
+
- current surface, text, action, and semantic roles;
|
|
18
|
+
- places where grayscale obscures hierarchy or state;
|
|
19
|
+
- contrast failures and color-only communication;
|
|
20
|
+
- light/dark or data-visualization requirements;
|
|
21
|
+
- whether the task asks for more color or a new identity.
|
|
22
|
+
|
|
23
|
+
If a new identity is required, use [new-work.md](new-work.md). Ask only when a binding brand decision cannot be inferred.
|
|
24
|
+
|
|
25
|
+
## Choose a strategy
|
|
26
|
+
|
|
27
|
+
Name the intended emotional temperature, dominant relationship, contrast range, and color dosage before editing. The strategy may be restrained or immersive; it must follow the brief and selected world rather than a fixed percentage rule.
|
|
28
|
+
|
|
29
|
+
Build roles, not a bag of swatches:
|
|
30
|
+
|
|
31
|
+
- canvas and elevated surfaces;
|
|
32
|
+
- primary and secondary text;
|
|
33
|
+
- action, focus, and selection;
|
|
34
|
+
- borders and separators;
|
|
35
|
+
- success, warning, error, and information;
|
|
36
|
+
- data categories or scales when needed.
|
|
37
|
+
|
|
38
|
+
Use the project's existing color space. For a new web palette, prefer OKLCH because lightness and chroma can be adjusted predictably. Choose hue from product meaning and visual direction, never from a default category association.
|
|
39
|
+
|
|
40
|
+
## Apply at system scale
|
|
41
|
+
|
|
42
|
+
- Let the strongest color own a deliberate region or role instead of scattering tiny accents.
|
|
43
|
+
- Keep the primary action easy to find; do not spend its color on decoration.
|
|
44
|
+
- Tint neutrals only when the brand hue genuinely creates cohesion. Neutral gray is valid when it serves the world.
|
|
45
|
+
- On colored surfaces, derive secondary text from the foreground or surface hue rather than using washed-out generic gray.
|
|
46
|
+
- Keep semantic meanings consistent, but respect platform and domain conventions instead of assuming fixed hues.
|
|
47
|
+
- For data, use distinct lightness, chroma, shape, label, or pattern so color is not the only code.
|
|
48
|
+
- In dark mode, design surface elevation and contrast explicitly; do not invert the light theme mechanically.
|
|
49
|
+
- Define primitive values and semantic tokens when the project has a token system. Theme changes should normally remap semantic roles.
|
|
50
|
+
|
|
51
|
+
Decoration without a relationship to hierarchy, state, content, or the visual world is not a color strategy.
|
|
52
|
+
|
|
53
|
+
## Contrast and perception
|
|
54
|
+
|
|
55
|
+
Verify computed foreground/background pairs:
|
|
56
|
+
|
|
57
|
+
| Content | WCAG AA minimum |
|
|
58
|
+
|---|---|
|
|
59
|
+
| body text | 4.5:1 |
|
|
60
|
+
| large text | 3:1 |
|
|
61
|
+
| controls, icons, focus indicators | 3:1 |
|
|
62
|
+
|
|
63
|
+
Do not rely on eyesight alone. Check interactive states, overlays, text on images, disabled content, and both themes. Simulate common vision deficiencies. Information conveyed by color also needs text, shape, iconography, or position.
|
|
64
|
+
|
|
65
|
+
When deriving OKLCH ramps, vary lightness and reduce chroma near white and black. Do not keep high chroma at extreme lightness merely to make the math uniform. Prefer explicit colors over chains of translucent overlays when alpha would make contrast context-dependent.
|
|
66
|
+
|
|
67
|
+
## Verify
|
|
68
|
+
|
|
69
|
+
- Every color has a stable role or a world-specific atmospheric purpose.
|
|
70
|
+
- Attention lands on the intended action, content, or state.
|
|
71
|
+
- The palette works across quiet, dense, interactive, error, and empty states.
|
|
72
|
+
- Light and dark themes are each composed, not mechanically inverted.
|
|
73
|
+
- Contrast and non-color cues pass in all relevant states.
|
|
74
|
+
- The result is recognizably this product, not a generic “colorful” treatment.
|
|
75
|
+
|
|
76
|
+
When the palette earns its place, hand off to `/impeccable polish` for the final pass.
|
|
77
|
+
|
|
78
|
+
## Live-mode signature params
|
|
79
|
+
|
|
80
|
+
When invoked from live mode, every variant declares a `color-amount` parameter. Author CSS against `var(--p-color-amount, 0.5)` so the user can move from neutral to the variant's full color strategy without regeneration.
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{"id":"color-amount","kind":"range","min":0,"max":1,"step":0.05,"default":0.5,"label":"Color amount"}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Add at most two variant-specific parameters, such as palette, temperature, or tint behavior. Follow [live.md](live.md)'s parameter contract.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Plan and asset review
|
|
2
|
+
|
|
3
|
+
Use this checkpoint on comp-led builds once every raster region has its plate and the plates gate has scored them, before any page code exists. The approved comp is the reference. The user reviews two things: the plates that will ship, and the production plan for everything else, meaning which regions code draws. A painted region planned as code is the most expensive mistake a comp-led build makes, and this is where the user catches it. Text, controls and chrome are judged later, in the assembled first viewport.
|
|
4
|
+
|
|
5
|
+
## Plan, capture, serve
|
|
6
|
+
|
|
7
|
+
Run `"<skill-base-dir>/scripts/impeccable" component-review plan`. It writes `.impeccable/review/components.json` from the measured spec, the comp and the plate files, and refuses, naming each one, while any raster region lacks its plate. Never write or edit that file for this stage: the packet is derived from the spec, so every change belongs in the regions file.
|
|
8
|
+
|
|
9
|
+
If the harness exposes `component_review`, call it with `manifest_path` set to `.impeccable/review/components.json`. The host captures, presents the review and returns the user's decisions. A suspended request is waiting for the user; it is not a failed build or an approval.
|
|
10
|
+
|
|
11
|
+
Otherwise run `"<skill-base-dir>/scripts/impeccable" component-review capture --manifest .impeccable/review/components.json`, then start `"<skill-base-dir>/scripts/impeccable" component-review serve --session <returned session>` in the background. Open the URL it prints in the available browser and wait for the user; `serve` exits 0 once they submit. Read the decisions with `"<skill-base-dir>/scripts/impeccable" component-review status --session <id>`; `"<skill-base-dir>/scripts/impeccable" component-review verify --manifest .impeccable/review/components.json` confirms approval and refuses pending, needs-work and stale input. Never submit the page or write a receipt on the user's behalf.
|
|
12
|
+
|
|
13
|
+
`serve` exits 2 when this session has no browser (the same signal as the decision page) and 4 when it closes after 30 idle minutes without a decision. Either way no one is reviewing: stop waiting, do not approve anything yourself, and do not build past this checkpoint. End the run and report the plan and asset review as pending with its session ID, so the user can resume it. A waiting review is pending work, not a completed build.
|
|
14
|
+
|
|
15
|
+
## Act on the receipt
|
|
16
|
+
|
|
17
|
+
Apply the user's decisions as given, never your own favorable verdict in their place.
|
|
18
|
+
|
|
19
|
+
- **approve**: once every item is approved and the inventory is confirmed, advance to the hero.
|
|
20
|
+
- **revise** (a plate): regenerate that plate at the same path with the user's feedback.
|
|
21
|
+
- **revise with split** (an asset): replace that region in the regions file with its layers: a frame plate with a transparent opening (kind `plate`, same box), the content as its own `image` region at the opening's box, and each moving part (a shutter, a door) as its own plate. Name each layer after the original region, as `<id>-frame`, `<id>-view` or `<id>-shutter-left`, so the next round shows it as part of the user's request. Rerun `"<skill-base-dir>/scripts/impeccable" comp-spec --comp <comp.png> --regions <regions.json>` and produce the plates.
|
|
22
|
+
- **revise** (a plan item): change the regions file as the feedback says (resize or extend a raster region, split material into its own plate region, or adjust the code region), rerun `"<skill-base-dir>/scripts/impeccable" comp-spec --comp <comp.png> --regions <regions.json>`, and produce any new plates.
|
|
23
|
+
- **reclassify** (a code region): in the regions file, change that region's `kind` to the one the user chose and rewrite its `note` to describe the material. Rerun `"<skill-base-dir>/scripts/impeccable" comp-spec --comp <comp.png> --regions <regions.json>`, then produce the new plates, with the asset producer when subagents are available.
|
|
24
|
+
- **missing**: add the region to the regions file, rerun `"<skill-base-dir>/scripts/impeccable" comp-spec --comp <comp.png> --regions <regions.json>`, and produce its plate if it is raster.
|
|
25
|
+
|
|
26
|
+
Then run `plan`, `capture` and `serve` again. Unchanged decisions carry over, so the user sees only what changed. Any spec change, or a plate replaced after acceptance, needs a new round; the build-phase gate stays closed until the review of the current spec is accepted.
|
|
27
|
+
|
|
28
|
+
## Assemble and review
|
|
29
|
+
|
|
30
|
+
Build the first viewport from the approved plates and plan, and run the hero gate. Human review does not waive its integrity checks. After three failed hero attempts, or three failed responsive attempts before any first viewport is accepted, stop iterating and present the first-viewport review with the current build; the user's eye settles what the readings could not.
|
|
31
|
+
|
|
32
|
+
Present a second manifest at `.impeccable/review/hero.json`. You write this one, and its shape is fixed:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"schemaVersion": 2,
|
|
37
|
+
"stage": "hero",
|
|
38
|
+
"id": "hero",
|
|
39
|
+
"title": "First viewport",
|
|
40
|
+
"comp": {"path": ".impeccable/mocks/comp.png", "width": 1536, "height": 1024},
|
|
41
|
+
"components": [{
|
|
42
|
+
"id": "first-viewport",
|
|
43
|
+
"name": "First viewport",
|
|
44
|
+
"medium": "HTML / CSS",
|
|
45
|
+
"note": "Assembled first viewport",
|
|
46
|
+
"box": {"x": 0, "y": 0, "w": 1, "h": 1},
|
|
47
|
+
"preview": {"kind": "page", "path": "index.html"},
|
|
48
|
+
"dependencies": ["styles.css", "assets/plates/sky.png", "fonts/display.woff2"]
|
|
49
|
+
}]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- `schemaVersion` is 2. Version 3 is the plan review packet and requires stage `components`. `codeRegions` and `specSha256` exist only in version 3 and are refused here. `reviewGroup` is refused too: version 3 rejects it, and any other version accepts it only on a page preview in a `components`-stage manifest, never in a hero manifest.
|
|
54
|
+
- `comp.path` is the `comp` value in `.impeccable/build/spec.json`, and `width` and `height` are that PNG's pixel size.
|
|
55
|
+
- Exactly one component, with `box` exactly `{"x": 0, "y": 0, "w": 1, "h": 1}` and `name`, `medium` and `note` as strings.
|
|
56
|
+
- `preview.path` is the page entry the build gates (`artifact` in `.impeccable/build/state.json`).
|
|
57
|
+
- `dependencies` lists every other file the page loads (stylesheets, scripts, plates, images, fonts) as bare strings. Every path, here and above, is project-relative and plain: no leading `./` or `/`, no `..`, no URL, no `?`, `#`, `%`, `:` or backslash. A request to a file missing from this list, or to another host, fails the capture.
|
|
58
|
+
|
|
59
|
+
The reference stays the approved comp. Call the same host review tool, or run `capture`, `serve` and `verify` with this manifest. Needs-work feedback starts another assembly round.
|
|
60
|
+
|
|
61
|
+
Acceptance closes human review for this build: never request plan, asset or assembly approval again. While the page renders what the user accepted, the hero score, the palette check and every numeric reading are advisories; material vetoes still hold (a missing or unreferenced plate, an SVG illustration, an organic clip, a clipped plate, invented ink, failed rendered presence). When the capture no longer matches the accepted screenshot, restore what the user accepted; until then the readings apply. Complete the rest of the page, responsive behavior, finish checks and documentation with the accepted first viewport as the visual direction. This is first-viewport calibration, not a claim that the user reviewed the rest of the page. Shared stylesheet edits do not reopen approval. Preserve the accepted direction; a later explicit user change is a new task.
|
|
62
|
+
|
|
63
|
+
Assembled-page capture executes inline and declared local scripts from the pinned inputs. Network APIs, frames and workers are unavailable; the initial viewport must settle before capture. Keep the real page and declare its scripts rather than removing behavior to pass review.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Craft floor
|
|
2
|
+
|
|
3
|
+
Load this after the direction is settled, and build without announcing the checklist. A pinned brief or the committed visual world overrides anything here; your own habit does not. When the design hook is active it already enforces the mechanical checks below as you edit: act on its findings instead of re-auditing each rule.
|
|
4
|
+
|
|
5
|
+
## Verify
|
|
6
|
+
|
|
7
|
+
Each of these is a check on the built result, not an intention. Run them together in the batched inspection rounds, not as separate screenshot trips; the checks share one render.
|
|
8
|
+
|
|
9
|
+
- **Contrast:** body and placeholder text ≥4.5:1, large text ≥3:1. On colored surfaces tint secondary text from that hue or the foreground; never gray.
|
|
10
|
+
- **Depth:** shadows carry an offset and a soft blur. A zero-offset colored halo is decoration.
|
|
11
|
+
- **Spacing:** tight groups, generous separation, more space above a heading than below it. Read the computed values.
|
|
12
|
+
- **Type:** body measure 65–75ch, display max 6rem, tracking floor -0.04em, balanced headings, obvious scale and weight steps. Run the real copy at every breakpoint and fix what overflows.
|
|
13
|
+
- **Motion:** one authored moment, not scattered effects and not one identical entrance on every section. Exponential ease-out from an already-visible default. Reach past transform and opacity: blur, backdrop-filter, clip-path, mask, and shadow belong to the palette when they stay smooth.
|
|
14
|
+
- **States:** hover, disabled, loading, error, empty. Plus real content, working controls, responsive composition, keyboard focus.
|
|
15
|
+
- **Browser surfaces:** the parts you did not draw still carry the design. Text selection, the caret, custom scrollbars, focus rings, underline offset, and the numerals in tabular data all ship with browser defaults that belong to no design system. Theme them from the palette. This is the cheapest signal that a page was built rather than assembled, and the one models skip most reliably.
|
|
16
|
+
- **Copy:** the product's own language. Controls name their action; errors name the problem and the recovery.
|
|
17
|
+
- **Coverage:** every brief requirement present and findable within seconds.
|
|
18
|
+
|
|
19
|
+
## Refuse
|
|
20
|
+
|
|
21
|
+
These are the category's defaults, not bans: the brief's own words can earn any of them. Reaching for one when the axis is free means you were not deciding; recognizing that means rewriting the element, not softening it.
|
|
22
|
+
|
|
23
|
+
Page scaffolds:
|
|
24
|
+
|
|
25
|
+
- Same-size cards of icon plus heading plus text as the page structure. Cards are the lazy container; nested cards are always wrong.
|
|
26
|
+
- The hero-metric template: big number, small label, supporting stats, accent.
|
|
27
|
+
- A kicker or eyebrow above a heading. This one is a ban, not a default: no brief earns it back. The heading carries its own weight; delete the label and let the heading speak.
|
|
28
|
+
- Section numbers (01 / 02 / 03) unless the sequence itself carries information the reader needs.
|
|
29
|
+
- A modal for a task that needs neither interruption nor protected focus.
|
|
30
|
+
|
|
31
|
+
Surface habits:
|
|
32
|
+
|
|
33
|
+
- Gradient text. Emphasis comes from weight or size.
|
|
34
|
+
- Glass and blur as decoration rather than as a specific effect.
|
|
35
|
+
- A colored `border-left` or `border-right` above 1px on cards, list items, callouts, or alerts.
|
|
36
|
+
- Hard offset shadows (`box-shadow: 4px 4px 0`) outside a world that is actually neobrutalist. The zero-blur block shadow is a costume, not a depth system; a world that did not choose it never earns it as a default.
|
|
37
|
+
- Sparklines, progress rings, and soft-shadowed rounded rectangles standing in for content.
|
|
38
|
+
- Monospace as a costume for "technical" rather than for code, data, or measurement.
|
|
39
|
+
- A system display face (Impact, Arial Black, the platform sans) as the display voice of an own-world page. Source and self-host a face whose character matches the approved lettering; the closest installed font is a failure, not a fallback.
|
|
40
|
+
- Unicode glyphs or emoji standing in for an icon system. Icons are drawn, from a real library or authored SVG, in one consistent stroke and weight.
|
|
41
|
+
- Geometric masks standing in for organic contours. A circle, polygon, or radial-gradient cutout approximating a photographic subject's edge is the cheap version of the effect and reads worse than omitting it. Derive an alpha matte from the actual image, or produce a cut-out asset.
|
|
42
|
+
- Light or dark picked by category. Pick it from the use scene: who, where, under what ambient light.
|
|
43
|
+
|
|
44
|
+
The floor holds the mechanics; it never picks the direction. With every check green, spend the page on the committed world, and when torn between refined and committed, commit.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Craft (deprecated alias)
|
|
2
|
+
|
|
3
|
+
`craft` is a deprecated alias for an ordinary request to make new visual work. It adds no setup, interview, checkpoint, tool, or quality behavior. Apply SKILL.md's normal routing: create missing PRODUCT.md through [init.md](init.md), then follow [new-work.md](new-work.md) for visual authority, world and surface decisions, implementation, and finish.
|
|
4
|
+
|
|
5
|
+
Do not tell users they need to invoke `craft`. Natural requests such as “build this feature,” “make a landing page,” or “redesign this screen” use the same flow.
|