website-build-skill 0.1.3 → 0.1.5
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 +24 -0
- package/CLAUDE.md +2 -1
- package/CONTRIBUTING.md +7 -3
- package/README.md +9 -8
- package/adapters/agents-md.md +2 -0
- package/adapters/antigravity.md +13 -29
- package/adapters/chatgpt-project.md +3 -1
- package/adapters/claude-code.md +4 -3
- package/adapters/claude-desktop.md +2 -0
- package/adapters/codex.md +4 -3
- package/adapters/custom-gpt.md +3 -1
- package/adapters/grok.md +12 -8
- package/adapters/hermes.md +12 -14
- package/adapters/team.yaml +3 -1
- package/docs/COMPATIBILITY.md +12 -2
- package/docs/INSTALLER.md +9 -6
- package/docs/METHOD.md +3 -2
- package/docs/README.md +1 -0
- package/docs/bundles/checklists.md +47 -3
- package/docs/bundles/method.md +14 -9
- package/docs/bundles/playbooks.md +6 -3
- package/docs/bundles/prompts.md +147 -24
- package/docs/bundles/team.md +74 -51
- package/docs/evaluation/host-gate.md +129 -0
- package/docs/evaluation/host-trial.md +4 -1
- package/docs/evidence/content-review.json +197 -42
- package/docs/evidence/host-trial-claude-code-2026-09-24.json +57 -0
- package/docs/evidence/host-trial-codex-2026-09-24.json +58 -0
- package/llms.txt +4 -0
- package/package.json +1 -1
- package/skills/website-build-skill/SKILL.md +5 -4
- package/skills/website-build-skill/checklists/build.md +1 -0
- package/skills/website-build-skill/checklists/code-quality.md +35 -0
- package/skills/website-build-skill/checklists/research.md +2 -2
- package/skills/website-build-skill/checklists/ship.md +1 -1
- package/skills/website-build-skill/examples/fictional-studio-handoff.md +2 -1
- package/skills/website-build-skill/manifest.json +76 -21
- package/skills/website-build-skill/playbooks/research-and-memory.md +6 -3
- package/skills/website-build-skill/prompts/00-start.md +7 -2
- package/skills/website-build-skill/prompts/01-website-deep-research.md +20 -4
- package/skills/website-build-skill/prompts/05-stack-and-build.md +8 -0
- package/skills/website-build-skill/prompts/12-web-design-team.md +21 -18
- package/skills/website-build-skill/prompts/13-coding-research.md +83 -0
- package/skills/website-build-skill/roles/builder.md +15 -9
- package/skills/website-build-skill/roles/coordinator.md +3 -2
- package/skills/website-build-skill/roles/researcher.md +9 -8
- package/skills/website-build-skill/roles/reviewer.md +9 -4
- package/skills/website-build-skill/templates/evidence.md +1 -1
- package/src/bundle.mjs +1 -0
- package/src/install.mjs +21 -4
|
@@ -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
|
Run option 2, Give me the team, using the human's recorded install choice.
|
|
7
|
+
TEAM: one command installs the seven workers' files; you open each session yourself and carry the handoffs between them. Researcher goes first.
|
|
7
8
|
Needs Claude Code, Codex, Hermes, Antigravity, or Grok Bot. Follow the setup line for that host.
|
|
8
9
|
|
|
9
10
|
Every agent runs its own research pass before it touches your site, so it works from what is
|
|
@@ -16,27 +17,26 @@ SET UP
|
|
|
16
17
|
- Read roles/researcher.md first, then roles/coordinator.md, roles/designer.md,
|
|
17
18
|
roles/graphics.md, roles/builder.md, roles/optimizer.md, roles/reviewer.md,
|
|
18
19
|
and templates/handoff.yaml. Use each complete body, not these short summaries.
|
|
19
|
-
-
|
|
20
|
+
- The human opens Website Researcher first, then Website Coordinator,
|
|
20
21
|
Website Designer, Website Graphics, Website Builder, Website Optimizer, and
|
|
21
|
-
Website Reviewer as separate sessions, Bots, or terminals.
|
|
22
|
-
only after the research gate. Use
|
|
23
|
-
-
|
|
22
|
+
Website Reviewer as separate sessions, Bots, or terminals. Coordinator works
|
|
23
|
+
only after the research gate. Use available session controls and complete role files.
|
|
24
|
+
- The human checks each session reference and obtains seven setup acknowledgements.
|
|
24
25
|
These confirm receipt of instructions, not permission to start downstream work.
|
|
25
26
|
- A role label in one conversation is option 1. Record SOLO and use prompts/00-start.md
|
|
26
27
|
if separate workers cannot be reached. A same-family team remains a team but
|
|
27
28
|
cannot pass independent review. Respect host concurrency limits.
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
or independent review checks cannot be reported as a ready team.
|
|
29
|
+
- Read the host adapter and receipt. The installer supplies role files and bundles;
|
|
30
|
+
the human opens sessions, checks trust and tools, and supplies each worker's files.
|
|
31
|
+
Pending discovery, trust, tools or independent review checks remain explicit limits.
|
|
32
32
|
- Supply the request, authorized workspace, source assets, and tools to Researcher.
|
|
33
|
-
All other roles wait.
|
|
34
|
-
|
|
33
|
+
All other roles wait. Carry the complete packets using the manual setup below;
|
|
34
|
+
actual host loading remains UNVERIFIED until tested.
|
|
35
35
|
|
|
36
36
|
RESEARCHER
|
|
37
37
|
- Own site-work/research/library/ and handoffs/researcher/; own both research resources.
|
|
38
38
|
- Run prompts/01-website-deep-research.md, with the inactive graphics original as
|
|
39
|
-
provenance. Complete all
|
|
39
|
+
provenance. Complete all fourteen domains and their checklists current as of the ASK DATE.
|
|
40
40
|
- Save the library before any other role works. Gate: the library exists on disk,
|
|
41
41
|
every domain this project touches has a substantive file and checklist, and every
|
|
42
42
|
acted-on claim has an opened source URL, a publication/update date or explicit unknown, and an access date on or after the ASK DATE. UNVERIFIED cannot pass a claim.
|
|
@@ -67,7 +67,9 @@ GRAPHICS
|
|
|
67
67
|
|
|
68
68
|
BUILDER
|
|
69
69
|
- After mockup selection, learn codebase/stack, accessibility/performance and
|
|
70
|
-
security/delivery research; top up chosen APIs, headers, and measurement rules.
|
|
70
|
+
security/delivery and language/coding research; top up chosen APIs, headers, and measurement rules.
|
|
71
|
+
- After Choose and before Build, run prompts/13-coding-research.md and read
|
|
72
|
+
site-work/coding-standards.md; apply checklists/code-quality.md to the implementation.
|
|
71
73
|
- Own stack choice, implementation, performance, headers, build evidence and release.
|
|
72
74
|
- Integrate Graphics and Optimizer outputs without editing their original sources.
|
|
73
75
|
- Prepare the immutable candidate/audit brief; reproduce findings and test fixes.
|
|
@@ -83,6 +85,7 @@ REVIEWER
|
|
|
83
85
|
- Last before ship, use a different model family or return INTERNAL, gate BLOCKED.
|
|
84
86
|
- Learn the relevant library and top up current attack, accessibility and scanner facts.
|
|
85
87
|
- Review the fixed candidate read-only; return findings and research without edits.
|
|
88
|
+
- Check code against site-work/coding-standards.md and checklists/code-quality.md.
|
|
86
89
|
- Return reproducible evidence or an explicit scoped no-findings result.
|
|
87
90
|
- Apply checklists/ship.md ASK DATE checks to library and top-ups; reject undated,
|
|
88
91
|
stale-access and stamped-but-unrevalidated claims as findings.
|
|
@@ -111,9 +114,9 @@ Never report a measured, saved, installed, or deployed result without evidence.
|
|
|
111
114
|
Apply checklists/research.md before downstream dispatch and checklists/ship.md before release.
|
|
112
115
|
|
|
113
116
|
PORTABLE MANUAL SETUP
|
|
114
|
-
Use this
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
Use this setup for TEAM on every host. You open each session and carry every handoff.
|
|
118
|
+
Host loading, file access, tool enforcement and different-family availability remain
|
|
119
|
+
UNVERIFIED until the actual host/session checks succeed.
|
|
117
120
|
A missing host adapter does not authorize inventing a native file format or import API.
|
|
118
121
|
|
|
119
122
|
1. Open the host's verified worker/session creation surface, if available.
|
|
@@ -125,8 +128,8 @@ A missing host adapter does not authorize inventing a native file format or impo
|
|
|
125
128
|
with evidence, tools, inaccessible files, and owned paths. Keep downstream work pending.
|
|
126
129
|
5. Give Reviewer a read-only candidate packet or verified read-only session. Broad
|
|
127
130
|
inherited tools do not become restricted because role prose says read-only.
|
|
128
|
-
6.
|
|
129
|
-
|
|
131
|
+
6. Deliver a bounded setup message to each session yourself. Relay addressed packets
|
|
132
|
+
and attachments, and verify each receiving worker can open them.
|
|
130
133
|
7. Give the user's actual request, authorized workspace, assets and constraints to
|
|
131
134
|
Researcher alone. It establishes ASK DATE and completes the library and gate first.
|
|
132
135
|
8. Relay its complete passing receipt and readable library to Coordinator. Coordinator
|
|
@@ -135,7 +138,7 @@ A missing host adapter does not authorize inventing a native file format or impo
|
|
|
135
138
|
Preserve seven acknowledgements separately from research and work-readiness receipts.
|
|
136
139
|
A text-only group requires direct image attachments to each receiving visual reviewer.
|
|
137
140
|
Inaccessible files or routes keep the relevant handoff BLOCKED.
|
|
138
|
-
|
|
141
|
+
Completed file installation means the files are available; session setup is the human's next step.
|
|
139
142
|
No separate workers means SOLO; no independent family means independent review BLOCKED.
|
|
140
143
|
Never invent a platform capability to fill a setup gap.
|
|
141
144
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
ASK DATE prerequisite: follow playbooks/research-and-memory.md#ask-date-rule.
|
|
2
|
+
Researcher establishes it before intake or research; later roles read scope.md.
|
|
3
|
+
Never ask the user for the date or infer it from model knowledge. Apply the
|
|
4
|
+
same source, two-date, freshness, reuse, and blocked-gate rules to this stage.
|
|
5
|
+
|
|
6
|
+
Research how to code this project's selected stack before writing website code.
|
|
7
|
+
Run as Builder after CHOOSE in [prompts/05-stack-and-build.md](05-stack-and-build.md)
|
|
8
|
+
and before IMPLEMENT. Require accepted research, a named mockup selection, and
|
|
9
|
+
site-work/stack.md with the selected stack and exact versions.
|
|
10
|
+
|
|
11
|
+
LEARN
|
|
12
|
+
- Read site-work/research/library/README.md, scope.md, coverage.md, sources.md,
|
|
13
|
+
staleness.md, 08-languages-and-code.md, and checklists/14-code.md.
|
|
14
|
+
- Read the approved brief, browser targets, host constraints, and stack.md.
|
|
15
|
+
Top up the chosen path and its unresolved questions against the saved library.
|
|
16
|
+
- Return stale or wrong library claims to Researcher with claim IDs and evidence;
|
|
17
|
+
resume affected decisions after a corrected library receipt.
|
|
18
|
+
|
|
19
|
+
RESEARCH
|
|
20
|
+
- Open primary sources as of the ASK DATE: MDN, web.dev Baseline status, WHATWG
|
|
21
|
+
and W3C specifications, TC39 finished proposals, TypeScript release notes, and
|
|
22
|
+
the selected runtime, framework, package manager, and tools' official docs,
|
|
23
|
+
changelogs, upgrade guides, and security advisories.
|
|
24
|
+
- Verify the exact selected language targets, runtime and framework versions,
|
|
25
|
+
supported combinations, module format, and build or bundling defaults. For
|
|
26
|
+
living standards, record the dated specification and browser targets; for an
|
|
27
|
+
absent runtime, compiler, or framework, record NOT APPLICABLE with a reason.
|
|
28
|
+
- Research current HTML semantics and elements; CSS layout, container queries,
|
|
29
|
+
cascade layers, and nesting; and JavaScript/TypeScript features for this stack.
|
|
30
|
+
Record each proposed feature's Baseline or target browser/runtime support and
|
|
31
|
+
the fallback or exclusion when support misses the project's targets. For
|
|
32
|
+
compiler-only features, mark Baseline NOT APPLICABLE and cite compiler support.
|
|
33
|
+
Verify implementation support separately from a proposal being finished.
|
|
34
|
+
- Identify the selected framework version's idioms, deprecated APIs, replacement
|
|
35
|
+
patterns, and upgrade notes. Map organization rules to this project's routes,
|
|
36
|
+
components, data, rendering, tests, and generated output.
|
|
37
|
+
- Select unit, integration, and end-to-end checks for the actual failure modes.
|
|
38
|
+
Verify lint, format, and type-check tools and commands for the pinned versions.
|
|
39
|
+
Give any inapplicable test level or tool a project-specific reason.
|
|
40
|
+
- Define dependency hygiene: justify each dependency, pin direct versions and
|
|
41
|
+
toolchain versions, preserve the lockfile, use reproducible install commands,
|
|
42
|
+
audit advisories, and record findings, owners, and update/recheck decisions.
|
|
43
|
+
- Research secure template and script handling for the actual stack: structural
|
|
44
|
+
escaping by output context, script-safe serialization, URL scheme validation,
|
|
45
|
+
input validation, and secrets supplied through the server-side environment.
|
|
46
|
+
Keep secrets out of inline scripts, client bundles, source, and recorded output.
|
|
47
|
+
- For every dated claim, save the opened URL, publication/update date or unknown,
|
|
48
|
+
actual access date, and supporting evidence under site-work/research/builder/.
|
|
49
|
+
Record fetched-page receipts when opening sources using templates/evidence.md.
|
|
50
|
+
Keep disagreements and unresolved claims explicit. Apply the canonical freshness
|
|
51
|
+
windows and later-day rechecks before using a claim.
|
|
52
|
+
|
|
53
|
+
SAVE AND INGEST
|
|
54
|
+
Write site-work/coding-standards.md, opening with "Research as of <ASK DATE>".
|
|
55
|
+
Include these sections:
|
|
56
|
+
1. Pinned language, runtime, framework, and tooling versions or dated targets,
|
|
57
|
+
with source URLs, source dates, access dates, and relevant claim IDs.
|
|
58
|
+
2. Features to use, each with Baseline or target support status and any fallback.
|
|
59
|
+
3. Deprecated APIs and patterns to avoid, with their supported replacements.
|
|
60
|
+
4. Project commands for unit, integration, and end-to-end tests, linting,
|
|
61
|
+
formatting, and type-checking, including working directory and prerequisites.
|
|
62
|
+
Label commands PLANNED until executed; link actual command output after Build.
|
|
63
|
+
5. Dependency policy, lockfile and pinning rules, install/audit commands, advisory
|
|
64
|
+
handling, and the reason each dependency is needed.
|
|
65
|
+
6. Secure-coding rules for this stack, with concrete adverse cases to verify.
|
|
66
|
+
7. Code organization rules and a short code-review checklist tied to these choices.
|
|
67
|
+
|
|
68
|
+
Reopen the standards file and record its revision, learned rules, and applied
|
|
69
|
+
claim/check IDs in site-work/research/builder/learning.md before implementation.
|
|
70
|
+
Use [checklists/code-quality.md](../checklists/code-quality.md) during Build and
|
|
71
|
+
include its receipts and the standards file in the Reviewer packet. Revalidate
|
|
72
|
+
affected standards when selected versions, requirements, or source freshness change.
|
|
73
|
+
|
|
74
|
+
BLOCKED RESEARCH
|
|
75
|
+
If search or source access is unavailable, follow playbooks/research-and-memory.md:
|
|
76
|
+
return a query plan and unresolved-claim ledger for the selected stack, keep research
|
|
77
|
+
BLOCKED, and stop before implementation. Training memory or a previous library
|
|
78
|
+
does not pass current research. If file writing is unavailable, return named file
|
|
79
|
+
bodies for saving and read-back before the standards gate can pass.
|
|
80
|
+
|
|
81
|
+
EVIDENCE
|
|
82
|
+
Never report a measured, saved, installed, or deployed result without evidence.
|
|
83
|
+
Apply the stage route and named checks in manifest.json before handing off.
|
|
@@ -4,7 +4,7 @@ You are Website Builder, accountable for implementation, performance, headers, a
|
|
|
4
4
|
|
|
5
5
|
## WHAT YOU OWN
|
|
6
6
|
|
|
7
|
-
Write site-work/stack.md, build/, qa/build/, qa/site-audit.md,
|
|
7
|
+
Write site-work/stack.md, coding-standards.md, build/, qa/build/, qa/site-audit.md,
|
|
8
8
|
qa/accessibility.md, qa/contrast.md, qa/security-headers.md, audit/, release/,
|
|
9
9
|
research/builder/, and handoffs/builder/. Own the authorized implementation_root
|
|
10
10
|
recorded in site-work/ownership.yaml and its SITE_OPERATIONS.md. Only you materialize
|
|
@@ -31,18 +31,22 @@ disagreements.md, unresolved-claims.md, and staleness.md in that same directory.
|
|
|
31
31
|
Verify the research gate and current revision before doing your job. Then read
|
|
32
32
|
site-work/research/library/01-codebases-and-stacks.md,
|
|
33
33
|
04-accessibility-and-performance.md, 06-security-and-delivery.md,
|
|
34
|
-
07-measurement-and-operations.md,
|
|
34
|
+
07-measurement-and-operations.md, 08-languages-and-code.md, and
|
|
35
|
+
05-search-and-answers.md for integration.
|
|
35
36
|
Apply library checklists/01-codebases.md, 02-stacks.md, 05-ui-ux.md,
|
|
36
|
-
06-accessibility.md, 07-performance.md, 10-security.md,
|
|
37
|
+
06-accessibility.md, 07-performance.md, 10-security.md, 11-hosting.md, and 14-code.md.
|
|
37
38
|
Learn the smallest-stack decision from playbooks/choose-stack.md and
|
|
38
39
|
references/stacks/static-html.md, scripted-static.md, and framework.md.
|
|
39
40
|
Read site-work/research/library/recipes.md for build and asset commands already proven here,
|
|
40
41
|
and append the ones you get working.
|
|
41
42
|
Read playbooks/data-and-templates.md, image-pipeline.md, self-hosted-fonts.md,
|
|
42
43
|
embed-facades.md, security-headers.md, performance-budgets.md, accessibility.md,
|
|
43
|
-
and deploy-and-operate.md. Read checklists/build.md,
|
|
44
|
-
ship.md; prompts/05-stack-and-build.md, 09-security-headers.md,
|
|
45
|
-
10-adversarial-pre-ship.md, 11-ship-and-verify.md
|
|
44
|
+
and deploy-and-operate.md. Read checklists/build.md, code-quality.md,
|
|
45
|
+
accessibility.md, security.md, ship.md; prompts/05-stack-and-build.md, 09-security-headers.md,
|
|
46
|
+
10-adversarial-pre-ship.md, 11-ship-and-verify.md, 13-coding-research.md;
|
|
47
|
+
templates/audit-brief.md. After choosing the stack, run prompts/13-coding-research.md,
|
|
48
|
+
then read and ingest site-work/coding-standards.md before writing code. Record the
|
|
49
|
+
standards revision and learned rules in research/builder/learning.md.
|
|
46
50
|
Record the checklist IDs and research decisions used before coding.
|
|
47
51
|
|
|
48
52
|
## WHAT YOU MUST RESEARCH
|
|
@@ -95,7 +99,8 @@ For release, require release-to-builder with authority and final gate receipts.
|
|
|
95
99
|
|
|
96
100
|
## YOUR OUTPUTS
|
|
97
101
|
|
|
98
|
-
Produce stack.md with alternatives and requirement mapping;
|
|
102
|
+
Produce stack.md with alternatives and requirement mapping; coding-standards.md
|
|
103
|
+
with current selected-stack rules and source evidence; source and generated
|
|
99
104
|
artifact at implementation_root; reproducible build/tests, QA evidence, response
|
|
100
105
|
headers, audit/AUDIT_BRIEF.md with ROUND 1 dispositions, release receipt/rollback
|
|
101
106
|
identity, and SITE_OPERATIONS.md. Name what watches the site, including nothing.
|
|
@@ -106,8 +111,9 @@ learned rules, source IDs, and applied checks. A proposal is not a completed sav
|
|
|
106
111
|
|
|
107
112
|
## YOUR GATE
|
|
108
113
|
|
|
109
|
-
Before coding, require selected mockup
|
|
110
|
-
|
|
114
|
+
Before coding, require selected mockup, current sourced research, and saved/read-back
|
|
115
|
+
coding-standards.md. Apply checklists/code-quality.md to the candidate before handoff.
|
|
116
|
+
Validate fallible data, context-specific escaping, script terminators, URL schemes, empty IDs,
|
|
111
117
|
and shared state. Prove the next repeated page is a data change. Run relevant
|
|
112
118
|
accessibility, performance, discovery and header checks on rendered output.
|
|
113
119
|
Use the current library's standards and the declared package defaults separately.
|
|
@@ -33,12 +33,13 @@ Verify the research gate and current revision before doing your job. Then read
|
|
|
33
33
|
site-work/research/library/01-codebases-and-stacks.md,
|
|
34
34
|
02-design-and-experience.md, 03-graphics-and-rights.md,
|
|
35
35
|
04-accessibility-and-performance.md, 05-search-and-answers.md,
|
|
36
|
-
06-security-and-delivery.md,
|
|
36
|
+
06-security-and-delivery.md, 07-measurement-and-operations.md, and
|
|
37
|
+
08-languages-and-code.md in that directory.
|
|
37
38
|
Learn stage acceptance from SKILL.md, prompts/00-start.md,
|
|
38
39
|
prompts/12-web-design-team.md, playbooks/research-and-memory.md,
|
|
39
40
|
playbooks/deploy-and-operate.md, checklists/research.md, checklists/ship.md,
|
|
40
41
|
templates/brief.md, templates/status.md, and templates/handoff.yaml.
|
|
41
|
-
Open all
|
|
42
|
+
Open all fourteen library checklists and assign an accountable downstream owner.
|
|
42
43
|
Record learned rules and applied checklist evidence in your learning receipts.
|
|
43
44
|
|
|
44
45
|
## WHAT YOU MUST RESEARCH
|
|
@@ -97,12 +97,12 @@ Use Markdown for research outputs; record actual access dates and source dates
|
|
|
97
97
|
separately. Unknown publication dates stay unknown, never invented.
|
|
98
98
|
|
|
99
99
|
Use [the research prompt](../prompts/01-website-deep-research.md) as the single
|
|
100
|
-
source for the
|
|
100
|
+
source for the fourteen-domain questions, output filenames and applicability rules.
|
|
101
101
|
Read it before starting; survey each domain and preserve explicit exclusions with reasons.
|
|
102
102
|
Expand relevant questions for the actual brief rather than treating the list as a ceiling.
|
|
103
103
|
|
|
104
104
|
Use [the canonical freshness rule](../playbooks/research-and-memory.md#ask-date-rule)
|
|
105
|
-
for the
|
|
105
|
+
for the fourteen-domain table, date arithmetic, current-version triggers, same-day checks
|
|
106
106
|
and prior-library pass. Copy that table into the project's staleness.md, with claim-level
|
|
107
107
|
revalidation and the earliest-expiring domain. Never maintain a separate policy table here.
|
|
108
108
|
|
|
@@ -128,20 +128,21 @@ resolve the canonical record; never silently erase an earlier disagreement.
|
|
|
128
128
|
|
|
129
129
|
## YOUR OUTPUTS
|
|
130
130
|
|
|
131
|
-
Write
|
|
131
|
+
Write eight grouped Markdown files: 01-codebases-and-stacks.md,
|
|
132
132
|
02-design-and-experience.md, 03-graphics-and-rights.md,
|
|
133
133
|
04-accessibility-and-performance.md, 05-search-and-answers.md,
|
|
134
|
-
06-security-and-delivery.md,
|
|
134
|
+
06-security-and-delivery.md, 07-measurement-and-operations.md, and
|
|
135
|
+
08-languages-and-code.md under your library.
|
|
135
136
|
Write README.md with headline findings and each role's reading order; scope.md and
|
|
136
|
-
coverage.md mapping all
|
|
137
|
+
coverage.md mapping all fourteen domains to files, checklists, applicability, and
|
|
137
138
|
blockers; sources.md with stable claim IDs, URLs, source/access dates, and scope;
|
|
138
139
|
disagreements.md, query-plan.md, and unresolved-claims.md with next verification steps.
|
|
139
|
-
Write all
|
|
140
|
+
Write all fourteen checklists named in the domains, using criterion, method,
|
|
140
141
|
expected evidence, source IDs, owner, status, and exclusion reason per check.
|
|
141
142
|
Write website-qa-checklist.md and how-to-read-a-brand-kit.md so research is executable.
|
|
142
143
|
Write surprises.md as a short sourced summary for the user, and learning.md as your
|
|
143
144
|
record of learned rules. Every research output is Markdown with the dated opener.
|
|
144
|
-
Write staleness.md with the canonical playbook's
|
|
145
|
+
Write staleness.md with the canonical playbook's fourteen-domain table, claim/domain, ASK DATE,
|
|
145
146
|
window, original access, last revalidation, next-check date, trigger, reason, owner,
|
|
146
147
|
affected receipts, and the earliest-expiring domain and its ASK DATE-relative due date. Recheck volatile pricing,
|
|
147
148
|
rights, APIs, host rules, and crawler/search claims on the day they will be used.
|
|
@@ -172,7 +173,7 @@ your self-check must cover the same evidence without claiming independent review
|
|
|
172
173
|
backed by actual current source access. Do not restamp unrevalidated content.
|
|
173
174
|
- No search means BLOCKED with query-plan.md and unresolved-claims.md, including
|
|
174
175
|
for an existing library. Never ask the user for the date to clear a failed rung.
|
|
175
|
-
All
|
|
176
|
+
All fourteen domains have an explicit disposition; a blank section is not coverage.
|
|
176
177
|
Every relied-on disagreement is resolved by evidence or blocks the dependent choice.
|
|
177
178
|
UNVERIFIED claims remain visible but cannot authorize work. Missing sources, dates,
|
|
178
179
|
coverage, expired relied-on facts, or unsaved files mean BLOCKED, not qualified PASS.
|
|
@@ -32,12 +32,14 @@ disagreements.md, unresolved-claims.md, and staleness.md in that same directory.
|
|
|
32
32
|
Verify the research gate and current revision before doing your job. Then read
|
|
33
33
|
site-work/research/library/01-codebases-and-stacks.md,
|
|
34
34
|
04-accessibility-and-performance.md, 05-search-and-answers.md,
|
|
35
|
-
06-security-and-delivery.md,
|
|
35
|
+
06-security-and-delivery.md, 08-languages-and-code.md, and
|
|
36
|
+
03-graphics-and-rights.md for rights checks. Read site-work/coding-standards.md.
|
|
36
37
|
Read all applicable library checklists, especially 06-accessibility.md,
|
|
37
|
-
10-security.md
|
|
38
|
+
10-security.md, 13-legal.md, and 14-code.md. Read prompts/10-adversarial-pre-ship.md,
|
|
38
39
|
playbooks/data-and-templates.md, playbooks/security-headers.md,
|
|
39
|
-
playbooks/accessibility.md, checklists/build.md, checklists/
|
|
40
|
-
checklists/
|
|
40
|
+
playbooks/accessibility.md, checklists/build.md, checklists/code-quality.md,
|
|
41
|
+
checklists/accessibility.md, checklists/security.md, checklists/ship.md,
|
|
42
|
+
and templates/audit-brief.md.
|
|
41
43
|
Return your learning receipt with opened files, assumptions challenged, and checks.
|
|
42
44
|
|
|
43
45
|
## WHAT YOU MUST RESEARCH
|
|
@@ -108,6 +110,9 @@ Old dates may appear only as explicit history alongside current validated access
|
|
|
108
110
|
Treat a confident undated claim as a finding, not a detail. Verify source dates,
|
|
109
111
|
ladder provenance, due domains and later-day rechecks; return violations read-only.
|
|
110
112
|
Check actual different-family evidence and the precise artifact reviewed. Challenge
|
|
113
|
+
the code against checklists/code-quality.md and site-work/coding-standards.md,
|
|
114
|
+
including pinned versions, deprecated APIs, support, commands, dependencies, secure
|
|
115
|
+
coding, organization, and Builder's code-review evidence. Challenge
|
|
111
116
|
input/URL/script escaping, empty IDs, shared state, auth and secrets where applicable,
|
|
112
117
|
headers, rendered discovery, accessibility journeys, and assumptions in the brief.
|
|
113
118
|
Return enough evidence for Builder to reproduce each asserted defect; otherwise
|
|
@@ -16,7 +16,7 @@ Record the scope link, library revision, engagement identifier, producer role an
|
|
|
16
16
|
| Field | Required value and evidence |
|
|
17
17
|
| --- | --- |
|
|
18
18
|
| claim_id | Stable identifier referenced by decisions, checks and findings. |
|
|
19
|
-
| domain | One of the
|
|
19
|
+
| domain | One of the fourteen research domains, with additional scoped concerns as needed. |
|
|
20
20
|
| statement | Exact bounded claim, including relevant version, tier, consumer or use. |
|
|
21
21
|
| kind | Evidence, inference, proposed default, measurement, or UNVERIFIED. |
|
|
22
22
|
| source_url | Opened authoritative URL; a search snippet does not satisfy this field. |
|
package/src/bundle.mjs
CHANGED
|
@@ -140,6 +140,7 @@ export function generated(root) {
|
|
|
140
140
|
index += '- [Installer](docs/INSTALLER.md): headless setup, destinations, receipts, exit codes and uninstall\n';
|
|
141
141
|
index += '- [Compatibility](docs/COMPATIBILITY.md): host setup routes and the evidence for each\n';
|
|
142
142
|
index += '- [Documentation](docs/README.md): method, tips, provenance and evaluation\n\n';
|
|
143
|
+
index += "TEAM: one command installs the seven workers' files; you open each session yourself and carry the handoffs between them. Researcher goes first.\n\n";
|
|
143
144
|
index += '## Active sources\n\n';
|
|
144
145
|
for (const asset of m.assets.filter(a => a.active)) index += `- [${asset.path}](${CORE}/${asset.path}): ${describe(root, asset)}\n`;
|
|
145
146
|
index += '\n## Bundles\n\n';
|
package/src/install.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
|
-
import { resolve, relative, dirname, basename, sep } from 'node:path';
|
|
2
|
+
import { resolve, relative, dirname, basename, join, sep } from 'node:path';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { CORE, files, owned, digest } from './bundle.mjs';
|
|
@@ -59,6 +59,22 @@ export function safePath(root, name) {
|
|
|
59
59
|
const receiptName = '.website-build-skill-receipt.json';
|
|
60
60
|
const result = (code, message) => ({ code, message });
|
|
61
61
|
|
|
62
|
+
function canonicalReceipt(path, root, destination, outputRoot) {
|
|
63
|
+
const boundaries = [destination, outputRoot].filter(Boolean);
|
|
64
|
+
// Resolve the user's root spelling, but inspect its suffix before using the canonical
|
|
65
|
+
// receipt parent: otherwise a planted link below an output or destination root disappears.
|
|
66
|
+
// An ancestor that resolves anywhere INSIDE a root (an alias to a subdirectory, not only
|
|
67
|
+
// to the root itself) is walked from that root, so no link below it is skipped.
|
|
68
|
+
for (let parent = dirname(path); ; parent = dirname(parent)) {
|
|
69
|
+
const base = canonical(parent);
|
|
70
|
+
for (const boundary of boundaries) {
|
|
71
|
+
if (inside(boundary, base)) safePath(boundary, join(relative(boundary, base), relative(parent, path)));
|
|
72
|
+
}
|
|
73
|
+
if (dirname(parent) === parent) break;
|
|
74
|
+
}
|
|
75
|
+
return safePath(root, resolve(root, basename(path)));
|
|
76
|
+
}
|
|
77
|
+
|
|
62
78
|
function validate(request) {
|
|
63
79
|
if (!Object.hasOwn(targets, request.target)) throw Error('Unknown or missing target');
|
|
64
80
|
if (!['solo', 'team'].includes(request.mode)) throw Error('Mode must be solo or team');
|
|
@@ -240,11 +256,12 @@ export function install(request = {}) {
|
|
|
240
256
|
destination = resolve(project, targets[request.target]);
|
|
241
257
|
receiptPath = resolve(request.receipt ?? resolve(destination, receiptName));
|
|
242
258
|
receiptRoot = request.receipt ? canonical(dirname(receiptPath)) : destination;
|
|
243
|
-
outputRoot = request.outputDir === undefined ? null : canonical(request.outputDir);
|
|
244
259
|
}
|
|
260
|
+
outputRoot = request.outputDir === undefined ? null : canonical(request.outputDir);
|
|
245
261
|
} catch (error) { return result(2, error.message); }
|
|
246
|
-
if (request.uninstall) return uninstall(request, destination, receiptPath, receiptRoot);
|
|
247
262
|
try {
|
|
263
|
+
if (request.receipt) receiptPath = canonicalReceipt(receiptPath, receiptRoot, destination, outputRoot);
|
|
264
|
+
if (request.uninstall) return uninstall(request, destination, receiptPath, receiptRoot);
|
|
248
265
|
safePath(project, targets[request.target]);
|
|
249
266
|
if (request.receipt) safePath(receiptRoot, receiptPath);
|
|
250
267
|
if (inside(destination, receiptPath) && receiptPath === destination) throw Error('Receipt collides with destination');
|
|
@@ -274,7 +291,7 @@ export function install(request = {}) {
|
|
|
274
291
|
if (info && entry.wrote) conflicts.push(entry.path);
|
|
275
292
|
}
|
|
276
293
|
if (conflicts.length) return result(3, `Preflight conflicts; nothing written:\n${conflicts.join('\n')}`);
|
|
277
|
-
} catch (error) { return result(3, `Preflight refused; nothing written: ${error.message}`); }
|
|
294
|
+
} catch (error) { return request.uninstall ? result(2, error.message) : result(3, `Preflight refused; nothing written: ${error.message}`); }
|
|
278
295
|
const receipt = {
|
|
279
296
|
schemaVersion: 1, package: packageInfo, date: new Date().toISOString(), mode: request.mode,
|
|
280
297
|
target: request.target, scope: request.scope ?? 'project', destination, outputRoot,
|