@andespindola/crow-skills 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/README.md +62 -0
- package/bin/npm-crow-skills.cjs +20 -0
- package/catalog.json +398 -0
- package/crow_skills/__init__.py +3 -0
- package/crow_skills/__main__.py +3 -0
- package/crow_skills/agents.py +45 -0
- package/crow_skills/cli.py +241 -0
- package/crow_skills/npm_entry.py +14 -0
- package/crow_skills/source.py +256 -0
- package/crow_skills/storage.py +396 -0
- package/docs/cli-security.md +33 -0
- package/docs/cli.md +138 -0
- package/package.json +35 -0
- package/release.json +607 -0
- package/skills/crow-accessibility/SKILL.md +33 -0
- package/skills/crow-agent-security/SKILL.md +33 -0
- package/skills/crow-api-test/SKILL.md +34 -0
- package/skills/crow-architecture/SKILL.md +33 -0
- package/skills/crow-backend/SKILL.md +33 -0
- package/skills/crow-behaviour/SKILL.md +70 -0
- package/skills/crow-behaviour/agents/openai.yaml +4 -0
- package/skills/crow-behaviour/references/orchestration.md +64 -0
- package/skills/crow-behaviour/references/quality-patterns.md +56 -0
- package/skills/crow-browser/SKILL.md +33 -0
- package/skills/crow-debug/SKILL.md +33 -0
- package/skills/crow-design/SKILL.md +33 -0
- package/skills/crow-discovery/SKILL.md +33 -0
- package/skills/crow-documents/SKILL.md +33 -0
- package/skills/crow-domain/SKILL.md +33 -0
- package/skills/crow-frontend/SKILL.md +33 -0
- package/skills/crow-growth/SKILL.md +33 -0
- package/skills/crow-infra/SKILL.md +38 -0
- package/skills/crow-infra/references/kubernetes.md +3 -0
- package/skills/crow-interface/NOTICE.md +20 -0
- package/skills/crow-interface/SKILL.md +55 -0
- package/skills/crow-interface/agents/impeccable_asset_producer.toml +43 -0
- package/skills/crow-interface/agents/impeccable_documenter.toml +28 -0
- package/skills/crow-interface/agents/impeccable_finish_reviewer.toml +42 -0
- package/skills/crow-interface/agents/impeccable_manual_edit_applier.toml +96 -0
- package/skills/crow-interface/agents/openai.yaml +3 -0
- package/skills/crow-interface/licenses/Apache-2.0.txt +191 -0
- package/skills/crow-interface/licenses/Impeccable-NOTICE.md +11 -0
- package/skills/crow-interface/licenses/modern-screenshot-MIT.txt +9 -0
- package/skills/crow-interface/licenses/platform-design-MIT.txt +21 -0
- package/skills/crow-interface/reference/adapt.md +320 -0
- package/skills/crow-interface/reference/adapt.native.md +60 -0
- package/skills/crow-interface/reference/android.md +48 -0
- package/skills/crow-interface/reference/animate.md +91 -0
- package/skills/crow-interface/reference/audit.md +139 -0
- package/skills/crow-interface/reference/audit.native.md +141 -0
- package/skills/crow-interface/reference/bolder.md +35 -0
- package/skills/crow-interface/reference/clarify.md +96 -0
- package/skills/crow-interface/reference/colorize.md +88 -0
- package/skills/crow-interface/reference/craft-floor.md +52 -0
- package/skills/crow-interface/reference/craft.md +7 -0
- package/skills/crow-interface/reference/critique.md +828 -0
- package/skills/crow-interface/reference/degraded/asset-producer.md +5 -0
- package/skills/crow-interface/reference/degraded/documenter.md +5 -0
- package/skills/crow-interface/reference/degraded/finish-reviewer.md +5 -0
- package/skills/crow-interface/reference/degraded/manual-edit-applier.md +5 -0
- package/skills/crow-interface/reference/delight.md +72 -0
- package/skills/crow-interface/reference/distill.md +113 -0
- package/skills/crow-interface/reference/doctor.md +56 -0
- package/skills/crow-interface/reference/document.md +418 -0
- package/skills/crow-interface/reference/extract.md +70 -0
- package/skills/crow-interface/reference/generate.md +103 -0
- package/skills/crow-interface/reference/harden.md +347 -0
- package/skills/crow-interface/reference/hooks.md +113 -0
- package/skills/crow-interface/reference/init.md +133 -0
- package/skills/crow-interface/reference/ios.md +53 -0
- package/skills/crow-interface/reference/layout.md +90 -0
- package/skills/crow-interface/reference/live-setup.md +106 -0
- package/skills/crow-interface/reference/live.md +329 -0
- package/skills/crow-interface/reference/new-work.md +149 -0
- package/skills/crow-interface/reference/onboard.md +236 -0
- package/skills/crow-interface/reference/operate.md +63 -0
- package/skills/crow-interface/reference/optimize.md +260 -0
- package/skills/crow-interface/reference/overdrive.md +129 -0
- package/skills/crow-interface/reference/polish.md +107 -0
- package/skills/crow-interface/reference/quieter.md +101 -0
- package/skills/crow-interface/reference/roles/asset-producer.md +38 -0
- package/skills/crow-interface/reference/roles/documenter.md +23 -0
- package/skills/crow-interface/reference/roles/finish-reviewer.md +37 -0
- package/skills/crow-interface/reference/roles/manual-edit-applier.md +91 -0
- package/skills/crow-interface/reference/routing.md +26 -0
- package/skills/crow-interface/reference/runtime.md +30 -0
- package/skills/crow-interface/reference/shape.md +61 -0
- package/skills/crow-interface/reference/typeset.md +86 -0
- package/skills/crow-interface/reference/visualize.md +48 -0
- package/skills/crow-interface/reference/workflow.md +53 -0
- package/skills/crow-interface/scripts/VERSION +1 -0
- package/skills/crow-interface/scripts/command-metadata.json +98 -0
- package/skills/crow-interface/scripts/data/font-index-failures.json +121 -0
- package/skills/crow-interface/scripts/data/font-index.json +1 -0
- package/skills/crow-interface/scripts/engine-manifest.json +13 -0
- package/skills/crow-interface/scripts/impeccable +106 -0
- package/skills/crow-interface/scripts/impeccable.cmd +3 -0
- package/skills/crow-interface/scripts/live-browser-dom.js +167 -0
- package/skills/crow-interface/scripts/live-browser-ignores.js +242 -0
- package/skills/crow-interface/scripts/live-browser-session.js +144 -0
- package/skills/crow-interface/scripts/live-browser.js +13510 -0
- package/skills/crow-interface/scripts/modern-screenshot.umd.js +14 -0
- package/skills/crow-media/SKILL.md +33 -0
- package/skills/crow-native-mobile/SKILL.md +33 -0
- package/skills/crow-observe/SKILL.md +33 -0
- package/skills/crow-performance/SKILL.md +38 -0
- package/skills/crow-performance/references/measurement.md +3 -0
- package/skills/crow-platform/SKILL.md +33 -0
- package/skills/crow-postgres/SKILL.md +33 -0
- package/skills/crow-product-leadership/SKILL.md +33 -0
- package/skills/crow-qa/SKILL.md +34 -0
- package/skills/crow-release/SKILL.md +35 -0
- package/skills/crow-reverse/SKILL.md +33 -0
- package/skills/crow-secrets/SKILL.md +33 -0
- package/skills/crow-security-review/SKILL.md +33 -0
- package/skills/crow-security-scan/SKILL.md +33 -0
- package/skills/crow-security-test/SKILL.md +33 -0
- package/skills/crow-seo/SKILL.md +33 -0
- package/skills/crow-skill-author/SKILL.md +34 -0
- package/skills/crow-spec/SKILL.md +33 -0
- package/skills/crow-threat-model/SKILL.md +33 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
# Inline role fallback
|
|
4
|
+
|
|
5
|
+
Use the canonical [asset-producer](../roles/asset-producer.md) role. Adopt its output contract, then return to the parent workflow. Disclose that no independent agent performed this pass; the calling thread performs both roles. This does not authorize additional edits or tools.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
# Inline role fallback
|
|
4
|
+
|
|
5
|
+
Use the canonical [documenter](../roles/documenter.md) role. Adopt its output contract, then return to the parent workflow. Disclose that no independent agent performed this pass; the calling thread performs both roles. This does not authorize additional edits or tools.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
# Inline role fallback
|
|
4
|
+
|
|
5
|
+
Use the canonical [finish-reviewer](../roles/finish-reviewer.md) role. Adopt its output contract, then return to the parent workflow. Disclose that no independent agent performed this pass; the calling thread performs both roles. This does not authorize additional edits or tools.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
# Inline role fallback
|
|
4
|
+
|
|
5
|
+
Use the canonical [manual-edit-applier](../roles/manual-edit-applier.md) role. Adopt its output contract, then return to the parent workflow. Disclose that no independent agent performed this pass; the calling thread performs both roles. This does not authorize additional edits or tools.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
> **Additional context needed**: the brand's emotional range.
|
|
4
|
+
|
|
5
|
+
Make the experience memorable at moments that earn it. Delight is not a layer of generic whimsy; it is product character revealed through a useful interaction, a humane response, or an unexpectedly considered detail.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Visitor mode
|
|
10
|
+
|
|
11
|
+
- **Persuade + Experience:** personality may run through voice, composition, motion, and discovery, provided the artifact remains the focus.
|
|
12
|
+
- **Operate + Read:** concentrate delight at meaningful moments such as first use, completion, recovery, or mastery. Reliability carries everything else.
|
|
13
|
+
|
|
14
|
+
## Find the opportunity
|
|
15
|
+
|
|
16
|
+
Inspect the target, DESIGN.md, product voice, repeated-use frequency, and emotional context. Look for:
|
|
17
|
+
|
|
18
|
+
- effort worth acknowledging;
|
|
19
|
+
- waiting that can become informative;
|
|
20
|
+
- an empty or first-use state that can orient;
|
|
21
|
+
- an error or recovery moment that needs empathy;
|
|
22
|
+
- an interaction whose physical or verbal response could express the brand;
|
|
23
|
+
- a useful capability people might enjoy discovering.
|
|
24
|
+
|
|
25
|
+
Do not manufacture a celebration for an ordinary click. Ask only when the brand's emotional range or the stakes cannot be inferred.
|
|
26
|
+
|
|
27
|
+
## Define one delight thesis
|
|
28
|
+
|
|
29
|
+
State in one sentence what the user should feel and why that feeling belongs to this product. Then choose the smallest system that can deliver it:
|
|
30
|
+
|
|
31
|
+
- a distinctive response to a meaningful action;
|
|
32
|
+
- product-specific language that clarifies while carrying voice;
|
|
33
|
+
- an interaction or transition with a recognizable material behavior;
|
|
34
|
+
- an illustration, sound, haptic, or environmental detail grounded in the product world;
|
|
35
|
+
- a discovery reward that reveals real utility.
|
|
36
|
+
|
|
37
|
+
Derive the treatment from product mechanism and visual world, not a stock catalog.
|
|
38
|
+
|
|
39
|
+
## Build for the emotional moment
|
|
40
|
+
|
|
41
|
+
- **Success:** match the response to the effort and consequence. Major milestones can expand; routine saves should simply feel certain.
|
|
42
|
+
- **Waiting:** show truthful progress, useful context, or product-specific activity. Never fake work or delay completion to stage a flourish.
|
|
43
|
+
- **Empty and first use:** make the next action clear before adding personality.
|
|
44
|
+
- **Error and recovery:** lead with the problem and recovery. Warmth may reduce stress; jokes must not trivialize loss, money, privacy, or blocked work.
|
|
45
|
+
- **Repeated interaction:** keep the response satisfying after the hundredth use. Variation is useful only when it remains coherent and predictable enough to trust.
|
|
46
|
+
- **Discovery:** reward curiosity without hiding required functionality.
|
|
47
|
+
|
|
48
|
+
Copy must use the product's language. Generic whimsy is worse than neutral clarity.
|
|
49
|
+
|
|
50
|
+
## Protect the experience
|
|
51
|
+
|
|
52
|
+
Delight must not:
|
|
53
|
+
|
|
54
|
+
- delay, block, or obscure the primary task;
|
|
55
|
+
- override platform conventions or accessibility;
|
|
56
|
+
- add unrequested factual claims;
|
|
57
|
+
- play sound without consent or ignore mute settings;
|
|
58
|
+
- become mandatory, unskippable, or exhausting on repeat;
|
|
59
|
+
- add a dependency or asset cost disproportionate to the moment.
|
|
60
|
+
|
|
61
|
+
For authored motion, load [animate.md](animate.md). Respect screen readers, keyboard use, touch, localization, and cultural context. Nonessential loops stop when hidden. Make celebration intensity proportional to frequency and consequence.
|
|
62
|
+
|
|
63
|
+
## Verify
|
|
64
|
+
|
|
65
|
+
- The moment is specific enough that a neighboring product could not use it unchanged.
|
|
66
|
+
- It improves comprehension, confidence, motivation, or emotional recovery.
|
|
67
|
+
- The interface remains fast and obvious without the flourish.
|
|
68
|
+
- Repetition does not turn charm into friction.
|
|
69
|
+
- Muted, keyboard, touch, and localized paths work.
|
|
70
|
+
- The result feels like the selected world, not a generic “delight” treatment.
|
|
71
|
+
|
|
72
|
+
When the personality feels earned, hand off to `$crow-interface polish` for the final pass.
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
Strip a design to its essence. Remove anything that doesn't earn its place: redundant elements, repeated information, decorative noise, cosmetic complexity.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Assess Current State
|
|
9
|
+
|
|
10
|
+
Analyze what makes the design feel complex or cluttered:
|
|
11
|
+
|
|
12
|
+
1. **Identify complexity sources**:
|
|
13
|
+
- **Too many elements**: Competing buttons, redundant information, visual clutter
|
|
14
|
+
- **Excessive variation**: Too many colors, fonts, sizes, styles without purpose
|
|
15
|
+
- **Information overload**: Everything visible at once, no progressive disclosure
|
|
16
|
+
- **Visual noise**: Unnecessary borders, shadows, backgrounds, decorations
|
|
17
|
+
- **Confusing hierarchy**: Unclear what matters most
|
|
18
|
+
- **Feature creep**: Too many options, actions, or paths forward
|
|
19
|
+
|
|
20
|
+
2. **Find the essence**:
|
|
21
|
+
- What's the primary user goal? (There should be ONE)
|
|
22
|
+
- What's actually necessary vs nice-to-have?
|
|
23
|
+
- What can be removed, hidden, or combined?
|
|
24
|
+
- What's the 20% that delivers 80% of value?
|
|
25
|
+
|
|
26
|
+
If any of these are unclear from the codebase, do not guess. STOP and use Codex's structured user-input/question tool when available; if unavailable, ask directly in chat to clarify what you cannot infer.
|
|
27
|
+
|
|
28
|
+
**CRITICAL**: Simplicity is not about removing features. It's about removing obstacles between users and their goals. Every element should justify its existence.
|
|
29
|
+
|
|
30
|
+
## Plan Simplification
|
|
31
|
+
|
|
32
|
+
Create a ruthless editing strategy:
|
|
33
|
+
|
|
34
|
+
- **Core purpose**: What's the ONE thing this should accomplish?
|
|
35
|
+
- **Essential elements**: What's truly necessary to achieve that purpose?
|
|
36
|
+
- **Progressive disclosure**: What can be hidden until needed?
|
|
37
|
+
- **Consolidation opportunities**: What can be combined or integrated?
|
|
38
|
+
|
|
39
|
+
**IMPORTANT**: Simplification is hard. It requires saying no to good ideas to make room for great execution. Be ruthless.
|
|
40
|
+
|
|
41
|
+
## Simplify the Design
|
|
42
|
+
|
|
43
|
+
Systematically remove complexity across these dimensions:
|
|
44
|
+
|
|
45
|
+
### Information Architecture
|
|
46
|
+
- **Reduce scope**: Remove secondary actions, optional features, redundant information
|
|
47
|
+
- **Progressive disclosure**: Hide complexity behind clear entry points (accordions, modals, step-through flows)
|
|
48
|
+
- **Combine related actions**: Merge similar buttons, consolidate forms, group related content
|
|
49
|
+
- **Clear hierarchy**: ONE primary action, few secondary actions, everything else tertiary or hidden
|
|
50
|
+
- **Remove redundancy**: If it's said elsewhere, don't repeat it here
|
|
51
|
+
|
|
52
|
+
### Visual Simplification
|
|
53
|
+
- **Reduce color palette**: Use 1-2 colors plus neutrals, not 5-7 colors
|
|
54
|
+
- **Limit typography**: One font family, 3-4 sizes maximum, 2-3 weights
|
|
55
|
+
- **Remove decorations**: Eliminate borders, shadows, backgrounds that don't serve hierarchy or function
|
|
56
|
+
- **Flatten structure**: Reduce nesting, remove unnecessary containers; never nest cards inside cards
|
|
57
|
+
- **Remove unnecessary cards**: Cards aren't needed for basic layout; use spacing and alignment instead
|
|
58
|
+
- **Consistent spacing**: Use one spacing scale, remove arbitrary gaps
|
|
59
|
+
|
|
60
|
+
### Layout Simplification
|
|
61
|
+
- **Linear flow**: Replace complex grids with simple vertical flow where possible
|
|
62
|
+
- **Remove sidebars**: Move secondary content inline or hide it
|
|
63
|
+
- **Full-width**: Use available space generously instead of complex multi-column layouts
|
|
64
|
+
- **Consistent alignment**: Pick left or center, stick with it
|
|
65
|
+
- **Generous white space**: Let content breathe, don't pack everything tight
|
|
66
|
+
|
|
67
|
+
### Interaction Simplification
|
|
68
|
+
- **Reduce choices**: Fewer buttons, fewer options, clearer path forward (paradox of choice is real)
|
|
69
|
+
- **Smart defaults**: Make common choices automatic, only ask when necessary
|
|
70
|
+
- **Inline actions**: Replace modal flows with inline editing where possible
|
|
71
|
+
- **Remove steps**: Can the flow lose a step?
|
|
72
|
+
- **Clear next action**: ONE obvious next action, not five competing ones
|
|
73
|
+
|
|
74
|
+
### Content Simplification
|
|
75
|
+
- **Shorter copy**: Cut every sentence in half, then do it again
|
|
76
|
+
- **Active voice**: "Save changes" not "Changes will be saved"
|
|
77
|
+
- **Remove jargon**: Plain language always wins
|
|
78
|
+
- **Scannable structure**: Short paragraphs, bullet points, clear headings
|
|
79
|
+
- **Essential information only**: Remove marketing fluff, legalese, hedging
|
|
80
|
+
- **Remove redundant copy**: No headers restating intros, no repeated explanations, say it once
|
|
81
|
+
|
|
82
|
+
### Code Simplification
|
|
83
|
+
- **Remove unused code**: Dead CSS, unused components, orphaned files
|
|
84
|
+
- **Flatten component trees**: Reduce nesting depth
|
|
85
|
+
- **Consolidate styles**: Merge similar styles, use utilities consistently
|
|
86
|
+
- **Reduce variants**: Does that component need 12 variations, or can 3 cover 90% of cases?
|
|
87
|
+
|
|
88
|
+
**NEVER**:
|
|
89
|
+
- Remove necessary functionality (simplicity ≠ feature-less)
|
|
90
|
+
- Sacrifice accessibility for simplicity (clear labels and ARIA still required)
|
|
91
|
+
- Make things so simple they're unclear (mystery ≠ minimalism)
|
|
92
|
+
- Remove information users need to make decisions
|
|
93
|
+
- Eliminate hierarchy completely (some things should stand out)
|
|
94
|
+
- Oversimplify complex domains (match complexity to actual task complexity)
|
|
95
|
+
|
|
96
|
+
## Verify Simplification
|
|
97
|
+
|
|
98
|
+
Ensure simplification improves usability:
|
|
99
|
+
|
|
100
|
+
- **Faster task completion**: Can users accomplish goals more quickly?
|
|
101
|
+
- **Reduced cognitive load**: Is it easier to understand what to do?
|
|
102
|
+
- **Still complete**: Are all necessary features still accessible?
|
|
103
|
+
- **Clearer hierarchy**: Is it obvious what matters most?
|
|
104
|
+
- **Better performance**: Does simpler design load faster?
|
|
105
|
+
|
|
106
|
+
## Document Removed Complexity
|
|
107
|
+
|
|
108
|
+
If you removed features or options:
|
|
109
|
+
- Document why they were removed
|
|
110
|
+
- Consider if they need alternative access points
|
|
111
|
+
- Note any user feedback to monitor
|
|
112
|
+
|
|
113
|
+
When the cuts feel right, hand off to `$crow-interface polish` for the final pass. As Antoine de Saint-Exupéry put it: "Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away."
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- Modified for Crow, 2026-10-20: portable paths and capability-specific corrections. Shared flow: workflow.md. Derived from Impeccable, Copyright 2025 Paul Bakaus, Apache-2.0. -->
|
|
2
|
+
|
|
3
|
+
Report and repair drift between this project's Impeccable artifacts and what the installed version reads: PRODUCT.md, DESIGN.md and its `.impeccable/design.json` sidecar, `.impeccable/config.json`, persisted surface briefs, and the design hook.
|
|
4
|
+
|
|
5
|
+
This is maintenance, not design. Do not redesign anything, do not open files outside the ones the report names, and do not run any other command as a side effect.
|
|
6
|
+
|
|
7
|
+
## What this owns, and what it does not
|
|
8
|
+
|
|
9
|
+
Three kinds of drift travel under "out of date". Keep them apart:
|
|
10
|
+
|
|
11
|
+
- **Tool version.** The installed skill is older than the published one. `impeccable context` reports that at boot as `UPDATE_AVAILABLE` and `npx impeccable update` fixes it. Not this command's job.
|
|
12
|
+
- **Schema drift.** An artifact was written by an older Impeccable: fields nothing reads, fields now expected, files in retired locations. Mechanical, and this command repairs most of it.
|
|
13
|
+
- **Truth drift.** The code moved on and the document no longer describes it. No file comparison settles this. `document` owns DESIGN.md, `init` owns PRODUCT.md, and this command's job is to hand them a specific gap rather than a vague suspicion.
|
|
14
|
+
|
|
15
|
+
## Step 1: Run the pass
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
<skill-base-dir>/scripts/impeccable doctor --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Add `--target <path>` when the user named a workspace, file, or route in a monorepo. Without it the report describes the repo root, and in a monorepo that is often the wrong project.
|
|
22
|
+
|
|
23
|
+
The output carries `findings` (each with `id`, `artifact`, `path`, `severity`, `summary`, `fix`) and, in a monorepo, `workspaces` with each app's product and design resolution. `ruleRegistryAvailable: false` means ignored rule ids could not be validated; say so rather than implying that list is clean.
|
|
24
|
+
|
|
25
|
+
An empty `findings` array is the good outcome. Say so in one line and stop.
|
|
26
|
+
|
|
27
|
+
## Step 2: Act by severity
|
|
28
|
+
|
|
29
|
+
The severity says what should happen, not how bad it is.
|
|
30
|
+
|
|
31
|
+
- **`auto`** carries no decision. Run `<skill-base-dir>/scripts/impeccable doctor --fix` once to apply these, then report what it moved in one line. Do not ask permission first, and do not ask about them afterward.
|
|
32
|
+
- **`mention`** needs the user to know but not to decide anything now. State each one in a sentence with its offered fix.
|
|
33
|
+
- **`route`** needs a specific command. Name the command and the gap it would close. Run it only if the user asks in this turn; `init` and `document` are conversations, not repairs you perform unattended.
|
|
34
|
+
|
|
35
|
+
Report all three groups in one pass. Findings are not errors and the command does not fail on them.
|
|
36
|
+
|
|
37
|
+
## Step 3: Deprecated fields are binding
|
|
38
|
+
|
|
39
|
+
A finding that reports a deprecated field (`## Register` is the current one) is not a style note. Treat that field as absent for every decision from here on, whatever value it holds, and offer to delete the section. Preserving it "just in case" is how a retired axis keeps steering current output.
|
|
40
|
+
|
|
41
|
+
## Step 4: Do not overclaim on truth drift
|
|
42
|
+
|
|
43
|
+
`design-md-drift` counts commits to the visual source directories since DESIGN.md was last edited. A commit count is not a contradiction. Report the number, say what it measures, and if the user wants to know whether the document is actually wrong, read DESIGN.md against the current tokens and components and answer from that. Never assert that DESIGN.md is stale because the number is large.
|
|
44
|
+
|
|
45
|
+
The same restraint applies to `workspace-context-inherited`. Inheritance is a designed behavior. Whether one product record truthfully describes several apps is a question for the user, not a defect to fix.
|
|
46
|
+
|
|
47
|
+
## Monorepo notes
|
|
48
|
+
|
|
49
|
+
- `workspace-platform-native-evidence` is the finding that matters most here: a workspace carrying native build files while inheriting a root record that resolves to web gets web guidance for its whole life and never loads [ios.md](ios.md) or [android.md](android.md). The repair is a child PRODUCT.md in that workspace, because one inherited record cannot hold two platforms.
|
|
50
|
+
- `config-project-roots-match-nothing` means every `projectRoots` glob missed, so the repo root is silently standing in as the active project. A renamed workspace directory is the usual cause. Report the patterns and ask which directories they should name.
|
|
51
|
+
- `config-invalid-build-path` and `config-build-path-unset` both concern one key, `buildPath` in `.impeccable/config.json` (or the gitignored `.impeccable/config.local.json`, which wins for that developer). It holds `comp` or `code` and sets whether new surfaces are built from a generated comp or straight in code. An unread value does not fall back to the opposite path, so a project meaning `code` has been building comp-led; report the exact value. The unset finding fires only where a project has done direction work and never recorded a preference, and the offer belongs in it only when image generation exists in your tool surface. Without image generation there is nothing to choose and nothing to say.
|
|
52
|
+
- Use the `workspaces` table to show the user which apps carry their own context, which inherit, and which have none, before proposing any change.
|
|
53
|
+
|
|
54
|
+
## Opting out of the boot check
|
|
55
|
+
|
|
56
|
+
`impeccable context` reports the cheap subset of these findings at session start, throttled to once a week per project. Set `"stalenessCheck": false` in `.impeccable/config.json` to silence that, or `IMPECCABLE_NO_STALENESS_CHECK=1` for one session. This command still works with the check disabled, and that is the combination to suggest for a user who wants the report only when they ask for it.
|