website-build-skill 0.1.19 → 0.1.20
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/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +23 -1
- package/README.md +63 -4
- package/docs/PROVENANCE.md +8 -0
- package/docs/bundles/checklists.md +82 -79
- package/docs/bundles/method.md +108 -5
- package/docs/bundles/prompts.md +11 -1
- package/docs/evidence/content-review.json +160 -20
- package/docs/evidence/demo-run-crumb-and-co-2026-10-18-run-log.json +102 -0
- package/docs/evidence/demo-run-crumb-and-co-2026-10-18.json +186 -0
- package/llms.txt +5 -4
- package/package.json +2 -1
- package/skills/website-build-skill/SKILL.md +24 -2
- package/skills/website-build-skill/checklists/accessibility.md +8 -8
- package/skills/website-build-skill/checklists/brand-and-mockups.md +13 -10
- package/skills/website-build-skill/checklists/build.md +11 -11
- package/skills/website-build-skill/checklists/code-quality.md +6 -6
- package/skills/website-build-skill/checklists/performance-seo.md +11 -11
- package/skills/website-build-skill/checklists/research.md +15 -15
- package/skills/website-build-skill/checklists/security.md +8 -8
- package/skills/website-build-skill/checklists/ship.md +10 -10
- package/skills/website-build-skill/examples/audit-cases.md +1 -1
- package/skills/website-build-skill/examples/crumb-and-co-real-run.md +73 -0
- package/skills/website-build-skill/examples/fictional-studio-brief.md +1 -1
- package/skills/website-build-skill/examples/fictional-studio-handoff.md +1 -1
- package/skills/website-build-skill/manifest.json +33 -14
- package/skills/website-build-skill/prompts/04-three-mockups.md +11 -1
- package/src/validate.mjs +7 -5
|
@@ -20,16 +20,16 @@ Date rule: [ASK DATE, source evidence, and revalidation](../playbooks/research-a
|
|
|
20
20
|
|
|
21
21
|
| Check | Reject condition | Method and required evidence |
|
|
22
22
|
| --- | --- | --- |
|
|
23
|
-
| SH01: independent family and read-only review | Review is INTERNAL, self-review, same-family, unspecified-family, or Reviewer changed the candidate. | Compare actual Builder and Reviewer family evidence, fixed inspected identity, tool constraints and unchanged candidate bytes. Different model names or roles do not prove different families. Independent gate is NOT MET and shipment BLOCKED for internal review. |
|
|
24
|
-
| SH02: independent ASK DATE rejection | Any acted-on library claim or top-up lacks source/access evidence, predates ASK DATE, has a false source date, expired window, or fresh stamp over unrevalidated content. | Reviewer applies research.md AD09, repeating AD01 through AD08 against scope, actual claim IDs, openings, original-access/revalidation history, all fourteen windows and later-day checks. Return read-only findings with locations and evidence. |
|
|
25
|
-
| SH03: reproduced dispositions | A review allegation is treated as confirmed without reproduction, a material issue is unresolved, or a confirmed fix lacks regression evidence. | Read original findings and ROUND 1 dispositions. Require before-fix failure and after-fix pass for confirmed fixes, explicit inconclusive/not-reproduced results, and post-fix affected-check results. One independent round; harness verifies corrections. |
|
|
26
|
-
| SH04: final artifact continuity | Promoted bytes differ from the reviewed/fixed candidate without an explained, checked change. | Compare reviewed predecessor, bounded fix diff, final harness artifact digest, upload manifest, and preview identity. No moving-branch rebuild substitutes for checked bytes. |
|
|
27
|
-
| SH05: prerequisite gates and approvals | Research, rights, brand selection, build, accessibility, performance/discovery, security, or required review evidence remains incomplete. | Reopen every applicable receipt and artifact. Researcher corrects library claims; owning roles correct top-ups; Coordinator accepts verified revisions without editing producer evidence. |
|
|
28
|
-
| SH06: concrete release authority | Target, account, project, domain, action, operator, or rollback authority falls outside recorded authorization. | Read the user's existing scope and exact prepared release plan. If missing, request authorization only after the candidate is concrete and reviewable. No implied purchases, account creation, unrelated DNS or key rotation. |
|
|
29
|
-
| SH07: public payload and recovery | Private work files or secrets enter deployment, or rollback/safe recovery lacks an identified target and procedure. | Inspect the final allowlist and exact artifact. Name known-working recovery identity, operator, commands, limits and verification; initial releases need an explicit safe recovery plan. |
|
|
30
|
-
| SH08: live routes and journey | Deployment command success substitutes for actual HTTPS, route, asset, error, or primary-action checks. | After authorized promotion, record public URLs, deployment identity/time, GET responses, mobile/desktop browser results, production CSP and complete primary journey. Critical failure triggers the authorized recovery procedure and verification. |
|
|
31
|
-
| SH09: live discovery and honest measurement | Canonical/schema/sitemap/llms data drift, or social caches, field results or analytics receipt are asserted without evidence. | Inspect live origin responses and discovery parity. Keep actual third-party cache/property/field observations separate; name UNVERIFIED follow-ups and measurement owner. |
|
|
32
|
-
| SH10: complete operations and handoff | SITE_OPERATIONS.md cannot guide a cold reader or omits what watches the site and who handles failure. | Read the one document end to end: purpose, trigger, invocation chain, dependencies, reads, writes, closed loop, failure modes, manual run/verify/recovery, source of truth. Verify tested commands; mark untested procedures UNVERIFIED. |
|
|
23
|
+
| SH01: independent family and read-only review<br>Prevents self-review or a changed candidate from being called independent review. | Review is INTERNAL, self-review, same-family, unspecified-family, or Reviewer changed the candidate. | Compare actual Builder and Reviewer family evidence, fixed inspected identity, tool constraints and unchanged candidate bytes. Different model names or roles do not prove different families. Independent gate is NOT MET and shipment BLOCKED for internal review. |
|
|
24
|
+
| SH02: independent ASK DATE rejection<br>Prevents stale or unsupported research from being accepted for release. | Any acted-on library claim or top-up lacks source/access evidence, predates ASK DATE, has a false source date, expired window, or fresh stamp over unrevalidated content. | Reviewer applies research.md AD09, repeating AD01 through AD08 against scope, actual claim IDs, openings, original-access/revalidation history, all fourteen windows and later-day checks. Return read-only findings with locations and evidence. |
|
|
25
|
+
| SH03: reproduced dispositions<br>Prevents untested allegations and unproven fixes from deciding release readiness. | A review allegation is treated as confirmed without reproduction, a material issue is unresolved, or a confirmed fix lacks regression evidence. | Read original findings and ROUND 1 dispositions. Require before-fix failure and after-fix pass for confirmed fixes, explicit inconclusive/not-reproduced results, and post-fix affected-check results. One independent round; harness verifies corrections. |
|
|
26
|
+
| SH04: final artifact continuity<br>Prevents releasing different files from the ones that were reviewed and checked. | Promoted bytes differ from the reviewed/fixed candidate without an explained, checked change. | Compare reviewed predecessor, bounded fix diff, final harness artifact digest, upload manifest, and preview identity. No moving-branch rebuild substitutes for checked bytes. |
|
|
27
|
+
| SH05: prerequisite gates and approvals<br>Prevents release while required checks and approvals are incomplete. | Research, rights, brand selection, build, accessibility, performance/discovery, security, or required review evidence remains incomplete. | Reopen every applicable receipt and artifact. Researcher corrects library claims; owning roles correct top-ups; Coordinator accepts verified revisions without editing producer evidence. |
|
|
28
|
+
| SH06: concrete release authority<br>Prevents release actions from exceeding the user's permission. | Target, account, project, domain, action, operator, or rollback authority falls outside recorded authorization. | Read the user's existing scope and exact prepared release plan. If missing, request authorization only after the candidate is concrete and reviewable. No implied purchases, account creation, unrelated DNS or key rotation. |
|
|
29
|
+
| SH07: public payload and recovery<br>Prevents private-file exposure and a release with no usable recovery plan. | Private work files or secrets enter deployment, or rollback/safe recovery lacks an identified target and procedure. | Inspect the final allowlist and exact artifact. Name known-working recovery identity, operator, commands, limits and verification; initial releases need an explicit safe recovery plan. |
|
|
30
|
+
| SH08: live routes and journey<br>Prevents a successful deploy command from hiding a broken live site. | Deployment command success substitutes for actual HTTPS, route, asset, error, or primary-action checks. | After authorized promotion, record public URLs, deployment identity/time, GET responses, mobile/desktop browser results, production CSP and complete primary journey. Critical failure triggers the authorized recovery procedure and verification. |
|
|
31
|
+
| SH09: live discovery and honest measurement<br>Prevents live search details and measurement claims from outrunning their proof. | Canonical/schema/sitemap/llms data drift, or social caches, field results or analytics receipt are asserted without evidence. | Inspect live origin responses and discovery parity. Keep actual third-party cache/property/field observations separate; name UNVERIFIED follow-ups and measurement owner. |
|
|
32
|
+
| SH10: complete operations and handoff<br>Prevents a handoff that leaves the next operator unable to check or recover the site. | SITE_OPERATIONS.md cannot guide a cold reader or omits what watches the site and who handles failure. | Read the one document end to end: purpose, trigger, invocation chain, dependencies, reads, writes, closed loop, failure modes, manual run/verify/recovery, source of truth. Verify tested commands; mark untested procedures UNVERIFIED. |
|
|
33
33
|
|
|
34
34
|
## Apply the two release phases
|
|
35
35
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Crumb & Co: real demo run, 2026-10-18
|
|
2
|
+
|
|
3
|
+
One run, one host (Claude Code), one model (Claude Sonnet 5.5), SOLO. Demo business with placeholder content, not deployed. The business name was given; menu, prices, hours, address and the order URL are invented placeholders. This is a real execution record, not user approval or evidence for a new engagement.
|
|
4
|
+
|
|
5
|
+
## Request
|
|
6
|
+
|
|
7
|
+
> Build a one-page website for Crumb & Co, a neighbourhood bakery. White background, warm and simple. It needs the menu with prices, opening hours, the address with a map link, and a button to order ahead. Static site, no framework.
|
|
8
|
+
|
|
9
|
+
## Active time
|
|
10
|
+
|
|
11
|
+
24 min 48 s of active time, research to proof, one run. Install took 43 s separately. Stage intervals include thinking and tool waits; writing the report and run log afterward is excluded. These are observations of this demo, not a forecast or a completed release.
|
|
12
|
+
|
|
13
|
+
| Stage | Active interval | Seconds |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| Install (separate) | 0 min 43 s | 43 |
|
|
16
|
+
| Research | 7 min 35 s | 455 |
|
|
17
|
+
| Learn | 0 min 32 s | 32 |
|
|
18
|
+
| Ingest | 0 min 44 s | 44 |
|
|
19
|
+
| Scope | 0 min 45 s | 45 |
|
|
20
|
+
| Match | 1 min 07 s | 67 |
|
|
21
|
+
| Mock | 2 min 47 s | 167 |
|
|
22
|
+
| Choose | 0 min 25 s | 25 |
|
|
23
|
+
| Build | 3 min 46 s | 226 |
|
|
24
|
+
| Prove | 7 min 07 s | 427 |
|
|
25
|
+
|
|
26
|
+
## Chosen direction
|
|
27
|
+
|
|
28
|
+
Three real mockups: A Menu First, B Info Strip and C Display Band, each at 1440 and 390 px. The operator chose B Info Strip under the trial's explicit instruction, so BM06 is PASS with exception. Hours, address and the primary action sat near the top; the white background and simple menu fit the request.
|
|
29
|
+
|
|
30
|
+
The task-weighted rubric preferred B (4.55) to A (4.4). The operator proposed those weights; Awwwards' published weights preferred A (4.3) to B (4.2). The choice depends on that judgment, and a user who values design above task-finding could choose A. The build shortened the headline, used semantic hours markup, fixed menu wrapping and added the demo notice.
|
|
31
|
+
|
|
32
|
+
Treat the first mockup as a draft: say what feels off and ask again.
|
|
33
|
+
|
|
34
|
+
## Recorded gate results
|
|
35
|
+
|
|
36
|
+
Gate results are those of package 0.1.19. The current BM04 also requires screenshot sheets and 4x crops of each mockup, which this run did not produce.
|
|
37
|
+
|
|
38
|
+
The original report's stage results follow with generic tool names. Paths in code spans refer to the source run, not packaged assets.
|
|
39
|
+
|
|
40
|
+
| Stage | Gate result | Why |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| Research | PASS (AD01 to AD08), AD09 BLOCKED | `check-library` exit 0, 23 OPENED, 0 UNVERIFIED (`site-work/handoffs/researcher/check-library-run.txt`). AD09 needs a different-family reviewer; none was available. Nine research gaps listed in `unresolved-claims.md` (U-01 to U-09), none relied on |
|
|
43
|
+
| Learn | PASS | library reopened; `research/library/learning.md` |
|
|
44
|
+
| Ingest | PASS | learning receipts for designer, graphics, builder, optimizer under `site-work/research/<role>/learning.md` |
|
|
45
|
+
| Scope | PASS (SOLO acceptance) | `site-work/brief.md`, `capabilities.md`, `status.md`, `ownership.yaml`; the same model held Researcher and Coordinator, so acceptance is not independent |
|
|
46
|
+
| Match | PASS, brand INFERRED | no brand kit and no screenshots exist; only "white background" is an approved rule. 11 contrast pairs computed with a calculator tool (`site-work/brand/contrast.md`) |
|
|
47
|
+
| Mock | PASS (BM04), PASS with limits (BM05) | three directions at 390 and 1440, every PNG opened and inspected; two layout defects in my own first renders found and fixed |
|
|
48
|
+
| Choose | PASS with exception (BM06) | the skill says the user names the direction and silence is not a selection. The dispatcher told me to pick, so the operator chose B (Info Strip), recorded as an operator choice. B beats A by 0.15 on a rubric I reweighted (4.55 vs 4.4); with Awwwards' own weights A beats B (4.3 vs 4.2). That ordering depends on a judgment call, and `mockups/selection.md` says so |
|
|
49
|
+
| Build | PASS with limits | `node site-work/qa/check.mjs` exit 0: 38 of 38 checks, 14 of 14 adverse mutants caught. B09 PARTIAL: the order link target is verified, the click is not exercised (placeholder destination) |
|
|
50
|
+
| Prove | PASS with limits | AX01 contrast PASS; AX05 reflow and 48px targets PASS (scrollWidth equals innerWidth at 320, 390, 768, 1440); AX03 PARTIAL (focus ring checked by a forced-style render, no Tab run); AX07 BLOCKED (no screen reader); PS01 BLOCKED (no Lighthouse), PS02 UNVERIFIED (nothing live); page weight 7692 bytes raw, 2647 gzip |
|
|
51
|
+
| Protect | NOT RUN as a stage | not in the requested list. Local CSP evidence only (`site-work/qa/security-headers.md`): page renders byte-identical under the enforced policy, 0 CSP console lines, positive control caught 3 |
|
|
52
|
+
| Challenge | NOT RUN | needs a different-family reviewer; SH01 NOT MET |
|
|
53
|
+
| Ship | NOT RUN | stopped by instruction; `SITE_OPERATIONS.md` and the SH08 to SH10 checks are MISSING |
|
|
54
|
+
|
|
55
|
+
## Recorded gaps
|
|
56
|
+
|
|
57
|
+
The original report's failed, skipped or missing items follow with generic tool names.
|
|
58
|
+
|
|
59
|
+
- MISSING: `SITE_OPERATIONS.md`, independent review receipts (`site-work/review/`), live checks SH08 to SH10 (Ship not run).
|
|
60
|
+
- MISSING by decision: `sitemap.xml`, `robots.txt`, `404.html`, canonical link, share image, `agents.json`, `ai-instructions.json` (no domain, no host, no owner policy, optional; listed in `site-work/optimization/route-map.json`).
|
|
61
|
+
- Not run, tool or access missing: Lighthouse, screen reader, keyboard Tab run, 200 percent text zoom, W3C HTML validator, Rich Results Test, securityheaders.com, click on the order link.
|
|
62
|
+
- Memory save: unsupported, nothing saved (`research/library/memory-receipt.md`).
|
|
63
|
+
- Research attempts that failed: a search tool (account out of credits), WebSearch for NN/g restaurant guidance (no NN/g result), `nngroup.com/articles/pdf-usability/` (HTTP 404), an Awwwards bakery page (script-rendered, navigation text only). Logged in `query-plan.md`. Award-winning bakery design was therefore not studied (U-01).
|
|
64
|
+
- Deviation: I appended gap U-09 to the Researcher-owned `unresolved-claims.md` while acting as Designer; the skill says a downstream role flags the Researcher instead of editing the library. Same model held both roles, so it is recorded here, not hidden.
|
|
65
|
+
- First draft schema.org fetches returned compressed bytes; discarded and refetched with `--compressed` before any receipt was written.
|
|
66
|
+
|
|
67
|
+
Installer activation remained UNVERIFIED. Brand colours and mockup selection were the operator's choices. Protect was not run as a stage; local CSP evidence alone did not complete it. Independent review and release remain unmet.
|
|
68
|
+
|
|
69
|
+
## Open the real artifacts
|
|
70
|
+
|
|
71
|
+
For a new run, follow the checker ladder in [prompts/00-start.md](../prompts/00-start.md). When the installed checker is not on PATH, use `npx -y website-build-skill@<packageVersion> check-library <root>/site-work`, reading `<packageVersion>` from the installed `manifest.json`; this instruction does not change the recorded run's results.
|
|
72
|
+
|
|
73
|
+
See the [Crumb & Co showcase](https://github.com/aunysillyme/website-build-skill/tree/v0.1.20/docs/showcase/crumb-and-co) for the copied HTML, CSS, mockups, built-page PNGs, 4x crops, selection, research sources and full RESULT. The [showcase index](https://github.com/aunysillyme/website-build-skill/blob/v0.1.20/docs/showcase/README.md) links the original run log and evidence receipt. The showcase is repository-only and excluded from the npm package; if offline, request copies. Only the source list is included, not its fetch receipts or the entire research library.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Fictional Studio
|
|
1
|
+
# Invented example: Fictional Studio paper workshop website
|
|
2
2
|
|
|
3
3
|
Date rule: [ASK DATE and evidence discipline](../playbooks/research-and-memory.md#ask-date-rule).
|
|
4
4
|
Everything in this example is invented. It is not a real organization, person, project,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Fictional Studio
|
|
1
|
+
# Invented example: Fictional Studio research-to-design handoff walkthrough
|
|
2
2
|
|
|
3
3
|
Date rule: [ASK DATE and evidence discipline](../playbooks/research-and-memory.md#ask-date-rule).
|
|
4
4
|
Everything in this example is invented. It is not a real organization, person, project,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"packageVersion": "0.1.
|
|
3
|
+
"packageVersion": "0.1.20",
|
|
4
4
|
"skillName": "website-build-skill",
|
|
5
5
|
"pathBase": "All asset paths resolve from this manifest directory; runtime paths resolve in the authorized user project.",
|
|
6
6
|
"assets": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"skill-zip",
|
|
18
18
|
"native-skill"
|
|
19
19
|
],
|
|
20
|
-
"sha256": "
|
|
20
|
+
"sha256": "3676b02f74f003a3653feffb566d7508793481a5da14c0b967df868783880360"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"path": "manifest.json",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"skill-zip",
|
|
105
105
|
"native-skill"
|
|
106
106
|
],
|
|
107
|
-
"sha256": "
|
|
107
|
+
"sha256": "8516e975a0c2ab8ddcfeadeed1db5a4754ab42113fc16bfdfc0c636d3721363e"
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
110
|
"path": "prompts/05-stack-and-build.md",
|
|
@@ -527,7 +527,7 @@
|
|
|
527
527
|
"skill-zip",
|
|
528
528
|
"native-skill"
|
|
529
529
|
],
|
|
530
|
-
"sha256": "
|
|
530
|
+
"sha256": "658900aceac1ddb254559b346431fa449f30308ca606d0a49c3dbb6ffad1131c"
|
|
531
531
|
},
|
|
532
532
|
{
|
|
533
533
|
"path": "checklists/brand-and-mockups.md",
|
|
@@ -542,7 +542,7 @@
|
|
|
542
542
|
"skill-zip",
|
|
543
543
|
"native-skill"
|
|
544
544
|
],
|
|
545
|
-
"sha256": "
|
|
545
|
+
"sha256": "40da57f19ec61a57f468e81ff2a8e68468d0f8b99d66be160f35f879ca50d2c7"
|
|
546
546
|
},
|
|
547
547
|
{
|
|
548
548
|
"path": "checklists/build.md",
|
|
@@ -557,7 +557,7 @@
|
|
|
557
557
|
"skill-zip",
|
|
558
558
|
"native-skill"
|
|
559
559
|
],
|
|
560
|
-
"sha256": "
|
|
560
|
+
"sha256": "bfe0975267a4340a7434fc437c68067b3104c6db4be7a90823da4cdd4c83b693"
|
|
561
561
|
},
|
|
562
562
|
{
|
|
563
563
|
"path": "checklists/code-quality.md",
|
|
@@ -572,7 +572,7 @@
|
|
|
572
572
|
"skill-zip",
|
|
573
573
|
"native-skill"
|
|
574
574
|
],
|
|
575
|
-
"sha256": "
|
|
575
|
+
"sha256": "2779b6c6d09bd433b874805e1a60d6b145dff17cb1597d35cc3a19ccd633d5b2"
|
|
576
576
|
},
|
|
577
577
|
{
|
|
578
578
|
"path": "checklists/accessibility.md",
|
|
@@ -587,7 +587,7 @@
|
|
|
587
587
|
"skill-zip",
|
|
588
588
|
"native-skill"
|
|
589
589
|
],
|
|
590
|
-
"sha256": "
|
|
590
|
+
"sha256": "52e980fc853f1f29b1b7f03534654063050bf3a5adf85a00e989f0fa97b4188f"
|
|
591
591
|
},
|
|
592
592
|
{
|
|
593
593
|
"path": "checklists/performance-seo.md",
|
|
@@ -602,7 +602,7 @@
|
|
|
602
602
|
"skill-zip",
|
|
603
603
|
"native-skill"
|
|
604
604
|
],
|
|
605
|
-
"sha256": "
|
|
605
|
+
"sha256": "a66621ba98162f0a2d5148109e5fe5714687d88c2ceacfc8216ce732b430c0fe"
|
|
606
606
|
},
|
|
607
607
|
{
|
|
608
608
|
"path": "checklists/security.md",
|
|
@@ -617,7 +617,7 @@
|
|
|
617
617
|
"skill-zip",
|
|
618
618
|
"native-skill"
|
|
619
619
|
],
|
|
620
|
-
"sha256": "
|
|
620
|
+
"sha256": "c6c3f386a93e0a15018ae2669cb774319f7f86bf2b225cd036311e52c2360485"
|
|
621
621
|
},
|
|
622
622
|
{
|
|
623
623
|
"path": "checklists/ship.md",
|
|
@@ -632,7 +632,7 @@
|
|
|
632
632
|
"skill-zip",
|
|
633
633
|
"native-skill"
|
|
634
634
|
],
|
|
635
|
-
"sha256": "
|
|
635
|
+
"sha256": "dbf53ff1c796449cf74e0c685d8c753e66767bb9151cfd1b3eecb52b3d5bbc45"
|
|
636
636
|
},
|
|
637
637
|
{
|
|
638
638
|
"path": "references/stacks/static-html.md",
|
|
@@ -815,6 +815,21 @@
|
|
|
815
815
|
],
|
|
816
816
|
"sha256": "ba8fd139f7a7c28433cd27fad9fb5adabe49c79789cc1c8abe78cb1258e8d2af"
|
|
817
817
|
},
|
|
818
|
+
{
|
|
819
|
+
"path": "examples/crumb-and-co-real-run.md",
|
|
820
|
+
"version": "0.1.0",
|
|
821
|
+
"kind": "example",
|
|
822
|
+
"active": true,
|
|
823
|
+
"bundles": [
|
|
824
|
+
"method"
|
|
825
|
+
],
|
|
826
|
+
"distributions": [
|
|
827
|
+
"npm",
|
|
828
|
+
"skill-zip",
|
|
829
|
+
"native-skill"
|
|
830
|
+
],
|
|
831
|
+
"sha256": "c5c2b7b24183c7948707bc7013d55d26bcf7aa7c7c593eea7edebe68317f1c06"
|
|
832
|
+
},
|
|
818
833
|
{
|
|
819
834
|
"path": "examples/fictional-studio-brief.md",
|
|
820
835
|
"version": "0.1.0",
|
|
@@ -828,7 +843,7 @@
|
|
|
828
843
|
"skill-zip",
|
|
829
844
|
"native-skill"
|
|
830
845
|
],
|
|
831
|
-
"sha256": "
|
|
846
|
+
"sha256": "258d97cd799446e932a249924c7ce682831727dd348b4db0427eab74308c4707"
|
|
832
847
|
},
|
|
833
848
|
{
|
|
834
849
|
"path": "examples/fictional-studio-handoff.md",
|
|
@@ -843,7 +858,7 @@
|
|
|
843
858
|
"skill-zip",
|
|
844
859
|
"native-skill"
|
|
845
860
|
],
|
|
846
|
-
"sha256": "
|
|
861
|
+
"sha256": "b7ec17f13b0d5e68ca722d4b84fe99f68d1fc7a7bd31479587470c172b52a0d9"
|
|
847
862
|
},
|
|
848
863
|
{
|
|
849
864
|
"path": "examples/audit-cases.md",
|
|
@@ -858,7 +873,7 @@
|
|
|
858
873
|
"skill-zip",
|
|
859
874
|
"native-skill"
|
|
860
875
|
],
|
|
861
|
-
"sha256": "
|
|
876
|
+
"sha256": "3cbb5f4de23c4b9e16c9bb0ee39e8202807e3a51d9a3b67e661aa11ecd84a71d"
|
|
862
877
|
}
|
|
863
878
|
],
|
|
864
879
|
"entryRole": "researcher",
|
|
@@ -1247,6 +1262,7 @@
|
|
|
1247
1262
|
"templates/audit-brief.md",
|
|
1248
1263
|
"templates/site-operations.md",
|
|
1249
1264
|
"templates/status.md",
|
|
1265
|
+
"examples/crumb-and-co-real-run.md",
|
|
1250
1266
|
"examples/fictional-studio-brief.md",
|
|
1251
1267
|
"examples/fictional-studio-handoff.md",
|
|
1252
1268
|
"examples/audit-cases.md"
|
|
@@ -1363,6 +1379,7 @@
|
|
|
1363
1379
|
"templates/audit-brief.md",
|
|
1364
1380
|
"templates/site-operations.md",
|
|
1365
1381
|
"templates/status.md",
|
|
1382
|
+
"examples/crumb-and-co-real-run.md",
|
|
1366
1383
|
"examples/fictional-studio-brief.md",
|
|
1367
1384
|
"examples/fictional-studio-handoff.md",
|
|
1368
1385
|
"examples/audit-cases.md"
|
|
@@ -1426,6 +1443,7 @@
|
|
|
1426
1443
|
"templates/audit-brief.md",
|
|
1427
1444
|
"templates/site-operations.md",
|
|
1428
1445
|
"templates/status.md",
|
|
1446
|
+
"examples/crumb-and-co-real-run.md",
|
|
1429
1447
|
"examples/fictional-studio-brief.md",
|
|
1430
1448
|
"examples/fictional-studio-handoff.md",
|
|
1431
1449
|
"examples/audit-cases.md"
|
|
@@ -1489,6 +1507,7 @@
|
|
|
1489
1507
|
"templates/audit-brief.md",
|
|
1490
1508
|
"templates/site-operations.md",
|
|
1491
1509
|
"templates/status.md",
|
|
1510
|
+
"examples/crumb-and-co-real-run.md",
|
|
1492
1511
|
"examples/fictional-studio-brief.md",
|
|
1493
1512
|
"examples/fictional-studio-handoff.md",
|
|
1494
1513
|
"examples/audit-cases.md"
|
|
@@ -4,6 +4,7 @@ Never ask the user for the date or infer it from model knowledge. Apply the
|
|
|
4
4
|
same source, two-date, freshness, reuse, and blocked-gate rules to this stage.
|
|
5
5
|
|
|
6
6
|
Show me three visual mockups for this website before writing any website code.
|
|
7
|
+
Treat the first mockup as a draft: say what feels off and ask again.
|
|
7
8
|
Use the approved brief, research, brand kit, and representative real content.
|
|
8
9
|
If the brand kit is missing, first ask for my profile-picture and banner screenshots.
|
|
9
10
|
|
|
@@ -29,11 +30,20 @@ QUALITY
|
|
|
29
30
|
- Present one image file (PNG, JPEG, WebP or SVG) per direction and viewport,
|
|
30
31
|
with an optional static HTML preview. Text descriptions alone are not mockups.
|
|
31
32
|
Preview markup is a mockup artifact, not application markup or scaffolding.
|
|
33
|
+
- Require a screenshot sheet for each direction: browser captures at 390 px and
|
|
34
|
+
1440 px viewport widths, plus 4x crops of the header and one content junction
|
|
35
|
+
from each viewport. Label the direction, viewport and cropped regions.
|
|
36
|
+
- Open and inspect every image, including every crop and the assembled sheet,
|
|
37
|
+
before asking for a choice. Record the image paths, inspection and any defects
|
|
38
|
+
in site-work/mockups/comparison.md; repair and reinspect changed images.
|
|
39
|
+
- If no browser is available, record that in comparison.md and the stage handoff.
|
|
40
|
+
Keep the mockups unproven and the visual gate BLOCKED until browser captures
|
|
41
|
+
and image inspection are available; record any missed first-hour target.
|
|
32
42
|
- If you cannot produce or view visual files, return a designer handoff and mark
|
|
33
43
|
this stage incomplete. Do not claim three visual mockups from three paragraphs.
|
|
34
44
|
|
|
35
45
|
SAVE
|
|
36
|
-
- site-work/mockups/: the visual files and a comparison.md with tradeoffs.
|
|
46
|
+
- site-work/mockups/: the visual files, screenshot sheets and a comparison.md with tradeoffs and image inspection evidence.
|
|
37
47
|
- Write my selected direction and requested revisions to site-work/mockups/selection.md.
|
|
38
48
|
- Hand that decision to the coordinator, the sole writer of site-work/status.md.
|
|
39
49
|
|
package/src/validate.mjs
CHANGED
|
@@ -317,16 +317,18 @@ export function check(root, options = {}) {
|
|
|
317
317
|
else if (/UNAVAILABLE/.test(read(root, binEntry))) issues.push('PACKAGE_HONESTY:bin is still the unavailable sentinel');
|
|
318
318
|
// A published tarball that omits any of these installs nothing on a stranger's machine.
|
|
319
319
|
// A negation can empty one of them while the entry it negates is still listed. Only
|
|
320
|
-
// the
|
|
320
|
+
// GIFs and the repository-only showcase may be excluded; docs link to their public URLs.
|
|
321
321
|
// `src` and `src/` are the same entry.
|
|
322
322
|
const published = (p.files ?? []).map(entry => String(entry).replace(/\/+$/, ''));
|
|
323
|
-
|
|
323
|
+
const exclusions = ['!docs/*.gif', '!docs/showcase/**'];
|
|
324
|
+
if (published.some(entry => entry.startsWith('!') && !exclusions.includes(entry))) issues.push('PACKAGE_FILES:a negated entry can empty a published path');
|
|
324
325
|
for (const needed of ['bin', 'src', 'skills', 'docs', 'README.md', 'LICENSE'])
|
|
325
326
|
if (!published.includes(needed)) issues.push(`PACKAGE_FILES:${needed} is not published`);
|
|
326
327
|
// npm applies the list in order, so an exclusion placed before the entry it trims
|
|
327
|
-
// removes nothing and
|
|
328
|
-
|
|
329
|
-
|
|
328
|
+
// removes nothing and the excluded files still ship.
|
|
329
|
+
for (const exclusion of exclusions)
|
|
330
|
+
if (published.includes(exclusion) && published.indexOf(exclusion) < published.indexOf('docs'))
|
|
331
|
+
issues.push(`PACKAGE_FILES:${exclusion} must come after the docs entry or it excludes nothing`);
|
|
330
332
|
const floor = p.engines?.node?.match(/(\d+)/)?.[1];
|
|
331
333
|
const checks = JSON.parse(read(root, '.github/workflows/check.yml')).jobs?.checks;
|
|
332
334
|
const matrix = checks?.strategy?.matrix?.node;
|