linersh 0.5.7 → 1.0.1
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 +84 -159
- package/bin/liner.js +89 -44
- package/cli-update-docs/README.md +6 -6
- package/cli-update-docs/SKILL.md +72 -37
- package/cli-update-docs/quality-check-tests.md +256 -8
- package/cli-update-docs/source-finding-tactics.md +140 -3
- package/cli-update-docs/source-quality-hierarchy.md +83 -0
- package/cli-update-docs/synthesis-guidance.md +19 -5
- package/dist/agents/artifact-validation.js +440 -0
- package/dist/agents/artifact-validation.js.map +1 -0
- package/dist/agents/candidate-longlist.js +100 -0
- package/dist/agents/candidate-longlist.js.map +1 -0
- package/dist/agents/detect.js +3 -2
- package/dist/agents/detect.js.map +1 -1
- package/dist/agents/evaluation-assembly.js +270 -0
- package/dist/agents/evaluation-assembly.js.map +1 -0
- package/dist/agents/headless-runner.js +227 -0
- package/dist/agents/headless-runner.js.map +1 -0
- package/dist/agents/jtbd-clarify.js +42 -41
- package/dist/agents/jtbd-clarify.js.map +1 -1
- package/dist/agents/models.js +6 -7
- package/dist/agents/models.js.map +1 -1
- package/dist/agents/prompts.js +220 -20
- package/dist/agents/prompts.js.map +1 -1
- package/dist/agents/runner.js +462 -21
- package/dist/agents/runner.js.map +1 -1
- package/dist/phases.js +13 -13
- package/dist/phases.js.map +1 -1
- package/dist/source-inbox.js +297 -0
- package/dist/source-inbox.js.map +1 -0
- package/dist/version.js +3 -9
- package/dist/version.js.map +1 -1
- package/dist/yaml-io.js +42 -11
- package/dist/yaml-io.js.map +1 -1
- package/package.json +26 -23
- package/cli-update-docs/ABOUT.md +0 -69
- package/cli-update-docs/AI-HANDOFF.md +0 -241
- package/cli-update-docs/CURATION.md +0 -261
- package/cli-update-docs/JOB-STORY-MIGRATION.md +0 -99
- package/cli-update-docs/JTBD-MASTER-PROMPT-ABOUT.md +0 -133
- package/cli-update-docs/JTBD-MASTER-PROMPT.md +0 -147
- package/cli-update-docs/LINER-MASTER.md +0 -546
- package/cli-update-docs/MIXTAPE-FORMAT.md +0 -398
- package/cli-update-docs/PLATFORM.md +0 -210
- package/cli-update-docs/TUI-BACKLOG.md +0 -155
- package/dist/App.js +0 -220
- package/dist/App.js.map +0 -1
- package/dist/colors.js +0 -132
- package/dist/colors.js.map +0 -1
- package/dist/components/Header.js +0 -15
- package/dist/components/Header.js.map +0 -1
- package/dist/components/KeyHints.js +0 -17
- package/dist/components/KeyHints.js.map +0 -1
- package/dist/components/LabeledBox.js +0 -53
- package/dist/components/LabeledBox.js.map +0 -1
- package/dist/components/NextSteps.js +0 -18
- package/dist/components/NextSteps.js.map +0 -1
- package/dist/index.js +0 -17
- package/dist/index.js.map +0 -1
- package/dist/screens/AgentSetup.js +0 -224
- package/dist/screens/AgentSetup.js.map +0 -1
- package/dist/screens/BootSplash.js +0 -163
- package/dist/screens/BootSplash.js.map +0 -1
- package/dist/screens/CompileView.js +0 -567
- package/dist/screens/CompileView.js.map +0 -1
- package/dist/screens/FramingConfirmReview.js +0 -197
- package/dist/screens/FramingConfirmReview.js.map +0 -1
- package/dist/screens/Gate1Review.js +0 -147
- package/dist/screens/Gate1Review.js.map +0 -1
- package/dist/screens/Gate2Review.js +0 -162
- package/dist/screens/Gate2Review.js.map +0 -1
- package/dist/screens/ImportPrompt.js +0 -173
- package/dist/screens/ImportPrompt.js.map +0 -1
- package/dist/screens/JsSetup.js +0 -77
- package/dist/screens/JsSetup.js.map +0 -1
- package/dist/screens/LocalFilePicker.js +0 -139
- package/dist/screens/LocalFilePicker.js.map +0 -1
- package/dist/screens/NewMixtapeWizard.js +0 -662
- package/dist/screens/NewMixtapeWizard.js.map +0 -1
- package/dist/screens/PhaseRunner.js +0 -1203
- package/dist/screens/PhaseRunner.js.map +0 -1
- package/dist/screens/ProcessManifest.js +0 -160
- package/dist/screens/ProcessManifest.js.map +0 -1
- package/dist/screens/ProjectHub.js +0 -557
- package/dist/screens/ProjectHub.js.map +0 -1
- package/dist/screens/SourceModal.js +0 -269
- package/dist/screens/SourceModal.js.map +0 -1
- package/dist/screens/TapeBrowser.js +0 -312
- package/dist/screens/TapeBrowser.js.map +0 -1
- package/dist/screens/TapeDraftReview.js +0 -444
- package/dist/screens/TapeDraftReview.js.map +0 -1
- package/dist/screens/TapeEditor.js +0 -310
- package/dist/screens/TapeEditor.js.map +0 -1
- package/dist/screens/cassette-art.js +0 -72
- package/dist/screens/cassette-art.js.map +0 -1
- package/dist/store.js +0 -10
- package/dist/store.js.map +0 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Loaded by the `curating-mixtapes` skill at the start of Phase 2 (Candidate discovery).
|
|
4
4
|
|
|
5
|
-
This file describes
|
|
5
|
+
This file describes tactics that produce better candidates than generic search. When you reach Phase 2, work through the relevant tactics — not all of them for every mixtape, but enough that the candidate pool covers the knowledge map and required source roles from multiple angles.
|
|
6
6
|
|
|
7
|
-
The goal of Phase 2 is recall, not precision. You're producing two to four times the eventual kept count. You will cut in Phase 4. Casting wide here is the methodology working as designed.
|
|
7
|
+
The goal of Phase 2 is recall, not precision. You're producing roughly two to four times the eventual kept count, but the real stop condition is coverage of the required source roles and capability-pattern lanes. You will cut in Phase 4. Casting wide here is the methodology working as designed.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -91,9 +91,146 @@ This tactic is structurally related to the framing-gap test in Phase 5, but earl
|
|
|
91
91
|
|
|
92
92
|
---
|
|
93
93
|
|
|
94
|
+
## 7. Search for the core action and the curator anchors
|
|
95
|
+
|
|
96
|
+
A good candidate list is not just "sources about the topic." It must contain
|
|
97
|
+
sources that help the consuming AI do the job.
|
|
98
|
+
|
|
99
|
+
Start by extracting the JTBD's core action. Examples:
|
|
100
|
+
|
|
101
|
+
- "translate moodboards into UI"
|
|
102
|
+
- "turn bug reports into reproduction steps"
|
|
103
|
+
- "write grant narratives from research evidence"
|
|
104
|
+
|
|
105
|
+
Then search for candidate URLs that might directly teach, demonstrate, or argue
|
|
106
|
+
for that action. Bridge candidates are allowed, but they cannot carry the corpus
|
|
107
|
+
by themselves. For a moodboard-to-interface mixtape, CSS layout, design tokens,
|
|
108
|
+
and design systems are bridge leads: useful after a direction exists, but not
|
|
109
|
+
enough to teach how to read images, extract mood, or create a new interface
|
|
110
|
+
artifact. The keep/drop decision still happens only after the content is fetched
|
|
111
|
+
and read.
|
|
112
|
+
|
|
113
|
+
When the curator names a person, studio, product, software tool, YouTube
|
|
114
|
+
channel, or site they like, deepen the anchor. Search for their case studies,
|
|
115
|
+
interviews, talks, process notes, docs, essays, videos, and worked examples.
|
|
116
|
+
Do not stop at the homepage, gallery index, or crawler metadata unless that is
|
|
117
|
+
the only readable evidence available. If it is only a pointer, say so in the
|
|
118
|
+
candidate reason.
|
|
119
|
+
|
|
120
|
+
For visual-output jobs, deliberately search for visual and worked-example
|
|
121
|
+
evidence: image-heavy case studies, moodboard breakdowns, design rationale,
|
|
122
|
+
portfolio projects with process, talks, and videos. A source list made mostly
|
|
123
|
+
of UX primers, CSS references, and design-system docs is probably under-serving
|
|
124
|
+
the job even if every knowledge-map section has a source.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 8. Fill required source roles, not just sections
|
|
129
|
+
|
|
130
|
+
The Capability Brief should name **Required source roles**: the jobs the corpus
|
|
131
|
+
needs sources to perform for the future AI. These are not the same as source
|
|
132
|
+
`kind` (`reference / principle / prescription / example`) and not the same as
|
|
133
|
+
knowledge-map sections.
|
|
134
|
+
|
|
135
|
+
Examples:
|
|
136
|
+
|
|
137
|
+
- "core-action method" — sources that teach the exact action the agent must do
|
|
138
|
+
- "worked examples / case studies" — sources that show good output, process, or taste
|
|
139
|
+
- "domain authority" — primary/official sources the agent can cite for accuracy
|
|
140
|
+
- "implementation constraints" — specs, APIs, platform docs, safety limits, or production rules
|
|
141
|
+
- "critique / validation" — sources that help judge whether output is good
|
|
142
|
+
- "dissent / alternate stance" — sources that prevent one-frame bias
|
|
143
|
+
- "domain data" — keyword data, epidemiology, market signals, legal text, or other evidence specific to the niche
|
|
144
|
+
|
|
145
|
+
When you build the long-list, make sure every required role has candidates. A
|
|
146
|
+
populated section is not enough if a required role is thin. For a visual-output
|
|
147
|
+
mixtape, two dozen UX/design-system articles do not substitute for worked
|
|
148
|
+
visual/craft examples with rationale. For a medical SEO mixtape, SEO practice
|
|
149
|
+
articles do not substitute for authoritative medical sources and domain-specific
|
|
150
|
+
keyword or patient-language evidence.
|
|
151
|
+
|
|
152
|
+
**How to apply:** For each required source role, search until you have 3–6
|
|
153
|
+
plausible candidates or until it is clear public sources are thin. In the
|
|
154
|
+
candidate reason, name the role the source might satisfy. If you cannot find
|
|
155
|
+
credible candidates for a required role, write a "Role gaps" note in
|
|
156
|
+
`working/02-candidate-longlist.md` so Quality can recommend a focused
|
|
157
|
+
improvement pass instead of quietly accepting weak coverage.
|
|
158
|
+
|
|
159
|
+
Candidate count should fall out of the role plan:
|
|
160
|
+
|
|
161
|
+
- Narrow, single-domain projects may need fewer than 20 candidates.
|
|
162
|
+
- Ordinary projects usually land around 20–35 candidates.
|
|
163
|
+
- Broad, multi-domain, or `reference-translation` projects may need 40–60
|
|
164
|
+
candidates because each source domain and translation lane needs its own
|
|
165
|
+
candidate pool.
|
|
166
|
+
|
|
167
|
+
Do not pad the list to hit a number. Do not stop at a number when a material
|
|
168
|
+
role is still empty. Stop when every required role has credible candidates, the
|
|
169
|
+
knowledge map is covered, and any capability-pattern lanes named in Phase 1 have
|
|
170
|
+
enough evidence to evaluate.
|
|
171
|
+
|
|
172
|
+
Good candidate notes should say which role the source might serve:
|
|
173
|
+
|
|
174
|
+
- `source role: canonical method` — teaches the process the AI should follow
|
|
175
|
+
- `source role: domain authority` — grounds claims in a credible source
|
|
176
|
+
- `source role: applied example` — shows what good looks like in context
|
|
177
|
+
- `source role: boundary / risk` — prevents harmful or misleading output
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 9. Build a source ecology for reference-translation jobs
|
|
182
|
+
|
|
183
|
+
Some mixtapes are not just about a topic. They ask a future agent to read inputs
|
|
184
|
+
from one world and turn them into outputs in another. Common examples:
|
|
185
|
+
|
|
186
|
+
- images, moodboards, art direction, visual references, or style examples into a
|
|
187
|
+
product/interface brief
|
|
188
|
+
- screenshots, bug reports, logs, or user complaints into engineering actions
|
|
189
|
+
- research evidence, interview notes, or case studies into a narrative or plan
|
|
190
|
+
|
|
191
|
+
These are **reference-translation** capabilities. Their candidate pool needs a
|
|
192
|
+
source ecology, not a stack of sources from the final output medium.
|
|
193
|
+
|
|
194
|
+
For visual/reference work, search at least these lanes:
|
|
195
|
+
|
|
196
|
+
- **Input/reference-domain interpretation:** how practitioners read the source
|
|
197
|
+
worlds themselves, such as art, photography, architecture, interiors, posters,
|
|
198
|
+
editorial design, fashion, packaging, sports/media identity, film, or product
|
|
199
|
+
imagery.
|
|
200
|
+
- **Translation methods:** sources that show how observed qualities become new
|
|
201
|
+
decisions: design-language extraction, style tiles, creative direction,
|
|
202
|
+
case-study rationale, annotated redesigns, or critique.
|
|
203
|
+
- **Target-output constraints:** the platform/output realities that the final
|
|
204
|
+
work must survive, such as web responsiveness, accessibility, motion safety,
|
|
205
|
+
design systems, typography, or implementation mechanics.
|
|
206
|
+
- **Caller handoff language:** brief formats, vocabulary, do/don't lists,
|
|
207
|
+
validation checks, and clarification patterns that make the result executable
|
|
208
|
+
by another designer, engineer, or AI agent.
|
|
209
|
+
|
|
210
|
+
For an art-direction-to-web mixtape, CSS references, design-token specs, and
|
|
211
|
+
accessibility docs are valuable bridge sources. They are not substitutes for
|
|
212
|
+
visual-culture sources that teach the agent how to look, compare, interpret, and
|
|
213
|
+
translate. A candidate list made mostly of web-craft sources should include a
|
|
214
|
+
"Role gaps" note and keep searching for the missing input/reference domains.
|
|
215
|
+
|
|
216
|
+
**How to apply:** Before writing `working/02-candidate-longlist.md`, add a short
|
|
217
|
+
"Reference-translation source ecology" note to your own scratchpad or the
|
|
218
|
+
long-list: target output medium, input/reference domains represented, translation
|
|
219
|
+
method candidates, handoff candidates, and bridge/constraint candidates. If the
|
|
220
|
+
input/reference domains are thin, search those domains directly instead of doing
|
|
221
|
+
another generic target-output search. Do not stop at the ordinary 20–35 candidate
|
|
222
|
+
range if the ecology is still missing a source world the future agent must learn
|
|
223
|
+
to interpret.
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
94
227
|
## What not to do
|
|
95
228
|
|
|
96
229
|
- **Don't rely on generic search alone.** The first page of search results is what your audience could also find. The point of curation is to surface what they couldn't.
|
|
97
230
|
- **Don't accept candidates without verifying URLs.** AI hallucinates plausible-looking URLs. Web-fetch every URL before it goes on the long-list. A 404 candidate is worse than a missing one.
|
|
98
|
-
- **Don't filter at Phase 2.** That's Phase 4's job. If a source might be useful, it goes on the long-list. Quality decisions come after fetching and reading.
|
|
231
|
+
- **Don't filter at Phase 2.** That's Phase 4's job. If a source might be useful, it goes on the long-list. Quality decisions come after fetching and reading. A URL is a lead, not evidence that the content is any good.
|
|
99
232
|
- **Don't over-research one section while leaving others empty.** Walk the knowledge map. Each section should have a reasonable candidate pool before you go deep on any one section.
|
|
233
|
+
- **Don't let adjacency satisfy the JTBD.** A CSS reference is not an art-direction source just because the final artifact is HTML. A process article is not a writing source just because the writer needs a process. Label these as bridge candidates unless they directly teach the core action.
|
|
234
|
+
- **Don't collapse reference-translation work into the output medium.** If the future agent must translate paintings, photos, architecture, sports identity, or moodboards into a product direction, the candidate pool needs sources from those source worlds and from the translation move. Output-medium craft docs are necessary constraints, not the whole corpus.
|
|
235
|
+
- **Don't let "not absent" pass a required role.** If a required role is material to the future AI's job, thin coverage should trigger backfill or an improvement-pass recommendation.
|
|
236
|
+
- **Don't treat source roles as decorative.** A section can look populated while a required evidence role is absent. That is still a corpus gap.
|
|
@@ -6,6 +6,8 @@ This file describes how to rank sources, what to avoid, and the patterns to watc
|
|
|
6
6
|
|
|
7
7
|
The goal of Phase 4 is honest assessment against the JTBD. Not breadth. Not completeness. Not even fairness to every source. *Does this source help the consuming AI do the JTBD better?* If yes, keep it. If partially, trim it. If no, drop it.
|
|
8
8
|
|
|
9
|
+
A URL is only a lead. The source is the readable content. Do not keep or trim a candidate from its URL, title, search snippet, crawler metadata, or your memory of the source. Keep/trim decisions require source evidence.
|
|
10
|
+
|
|
9
11
|
---
|
|
10
12
|
|
|
11
13
|
## Source-quality hierarchy
|
|
@@ -75,6 +77,76 @@ For each fetched source, decide one of: kept, trim, dropped. Rate kept and trim
|
|
|
75
77
|
|
|
76
78
|
If you find yourself rating most sources 4–5, you're under-discriminating. The point of evaluation is to discriminate.
|
|
77
79
|
|
|
80
|
+
## Evidence fields
|
|
81
|
+
|
|
82
|
+
Every kept or trimmed source must include these fields in `working/03-evaluation.yaml`:
|
|
83
|
+
|
|
84
|
+
- `fetch_status: readable | partial` — `readable` means the substantive article, transcript, PDF body, or local content was retrieved. `partial` means enough real source content was retrieved to judge, such as an abstract plus substantial excerpt.
|
|
85
|
+
- `content_quality: high | medium` — `high` means dense, distinctive, and directly useful; `medium` means useful but selective. If the content is shallow, generic, AI-generated, SEO filler, a homepage/gallery without rationale, or a low-density transcript, drop it.
|
|
86
|
+
- `evidence:` — at least two bullets naming source-specific claims, examples, sections, methods, transcript moments, or limitations actually seen in the content.
|
|
87
|
+
|
|
88
|
+
`metadata_only` and `unavailable` candidates must be dropped. They can remain in the evaluation file as evaluated candidates, but they must not enter `tape.yaml` as normal corpus sources.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## JTBD-fit labels
|
|
93
|
+
|
|
94
|
+
Every kept or trimmed source must also get a `jtbd_fit` label. This prevents
|
|
95
|
+
topic adjacency from passing as source quality.
|
|
96
|
+
|
|
97
|
+
- **direct** — the source teaches, demonstrates, or argues for the core action
|
|
98
|
+
in the JTBD.
|
|
99
|
+
- **bridge** — the source helps execute the result after the core decision is
|
|
100
|
+
made: implementation mechanics, tokens, layout, process, API references, or
|
|
101
|
+
operational constraints.
|
|
102
|
+
- **background** — broad vocabulary, primer, historical context, or generic
|
|
103
|
+
orientation.
|
|
104
|
+
|
|
105
|
+
Bridge sources are valuable, but they are not the same as direct fit. If the job
|
|
106
|
+
is "turn moodboards into HTML interface concepts," then a moodboard analysis
|
|
107
|
+
method, a studio case study with rationale, or a talk on translating visual
|
|
108
|
+
references can be direct. A CSS layout guide, token spec, or design critique
|
|
109
|
+
process is a bridge unless it specifically teaches the translation move.
|
|
110
|
+
|
|
111
|
+
For a `reference-translation` capability, use an even stricter direct-fit test:
|
|
112
|
+
the source must help the future agent interpret the input/reference domain or
|
|
113
|
+
demonstrate the translation from reference qualities into target-output
|
|
114
|
+
decisions. Target-medium mechanics, accessibility standards, design-token
|
|
115
|
+
formats, style-guide infrastructure, and implementation docs are usually bridge
|
|
116
|
+
sources. They are important, but they cannot carry the core action alone.
|
|
117
|
+
|
|
118
|
+
Background sources should rarely be marked required. A kept background source
|
|
119
|
+
needs a narrow note explaining why its vocabulary or context is worth carrying.
|
|
120
|
+
|
|
121
|
+
If a knowledge-map section contains only `bridge` or `background` sources, mark
|
|
122
|
+
that as weak coverage in the rationale or quality report and backfill a direct
|
|
123
|
+
source if the section is central to the JTBD.
|
|
124
|
+
|
|
125
|
+
Quality also checks source roles at the corpus level. `reference / principle /
|
|
126
|
+
prescription / example` is only the generic kind distribution; some projects
|
|
127
|
+
need more specific roles. A visual art-director corpus may need high-craft case
|
|
128
|
+
studies and worked image-to-interface translations. A medical SEO corpus may
|
|
129
|
+
need clinical authority, search-intent evidence, and Google guidance. If those
|
|
130
|
+
role-specific sources are missing, write an operating-fit audit and recommend a
|
|
131
|
+
focused improvement pass instead of calling the corpus ready with a limitation.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Bounded fetch fallback
|
|
136
|
+
|
|
137
|
+
Phase 4 should read enough to make honest decisions, but it must not stall on
|
|
138
|
+
unavailable content. For each candidate, try one direct fetch/read. If that
|
|
139
|
+
fails, make at most one recovery attempt: alternate transcript source, search
|
|
140
|
+
result, mirror, metadata page, or equivalent.
|
|
141
|
+
|
|
142
|
+
After two failed retrieval attempts total, stop searching for that candidate and
|
|
143
|
+
evaluate from verified metadata, the Phase 2 reason, and any partial content you
|
|
144
|
+
have. Usually that means `dropped`. If you have enough partial content to judge,
|
|
145
|
+
set `fetch_status: partial` and write the evidence bullets. If you only have
|
|
146
|
+
metadata, set the decision to `dropped`; the rationale can say the candidate
|
|
147
|
+
looked promising but was metadata-only. Every candidate still gets a decision in
|
|
148
|
+
`working/03-evaluation.yaml`; no source may keep the phase open indefinitely.
|
|
149
|
+
|
|
78
150
|
---
|
|
79
151
|
|
|
80
152
|
## Patterns to watch for
|
|
@@ -115,14 +187,25 @@ Recent does not mean better. A 2024 article that summarizes well-known points is
|
|
|
115
187
|
|
|
116
188
|
Write every candidate's decision, regardless of whether it was kept or dropped. The dropped decisions matter — they're how the working notes show that evaluation actually happened.
|
|
117
189
|
|
|
190
|
+
For large candidate sets, write decisions incrementally under `working/evaluation-decisions/` as section-sized YAML fragments. Use names like `01-foundations.yaml` and keep each fragment small enough to inspect. Liner assembles those fragments into `working/03-evaluation.yaml` in the original longlist order, so the fragment files are the durable work surface and `03-evaluation.yaml` is the canonical assembled artifact.
|
|
191
|
+
|
|
118
192
|
```yaml
|
|
119
193
|
candidates:
|
|
120
194
|
- url: https://example.com/source
|
|
121
195
|
title: Source title
|
|
122
196
|
decision: kept # kept | trim | dropped
|
|
123
197
|
rating: 5 # 1-5; required for kept and trim
|
|
198
|
+
jtbd_fit: direct # direct | bridge | background
|
|
199
|
+
fetch_status: readable # readable | partial; metadata_only/unavailable are dropped
|
|
200
|
+
content_quality: high # high | medium; low is dropped
|
|
201
|
+
evidence:
|
|
202
|
+
- Specific claim or example found in the readable source content.
|
|
203
|
+
- Specific method, constraint, result, or limitation found in the content.
|
|
124
204
|
section: foundations
|
|
125
205
|
rationale: One-sentence reason this decision was made.
|
|
206
|
+
note: >
|
|
207
|
+
Role: Why this source belongs in the corpus. Value: What it contributes
|
|
208
|
+
to the job-to-be-done. Limitations: What the source cannot prove.
|
|
126
209
|
```
|
|
127
210
|
|
|
128
211
|
For dropped sources, the rationale should name *why* dropped — "duplicates Source 4," "shallow listicle," "AI-generated," "off-topic relative to JTBD." Generic "low quality" is not useful. Be specific.
|
|
@@ -20,12 +20,24 @@ Length: **800–2000 words.** Shorter for narrow topics; longer for broader ones
|
|
|
20
20
|
|
|
21
21
|
## What goes in
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Six kinds of content earn their place in the synthesis.
|
|
24
24
|
|
|
25
25
|
### Principles or framework
|
|
26
26
|
|
|
27
27
|
The conceptual structure the curator sees in the domain. Not a definition list — a framework. "Good CLI design rests on four pillars: predictable command shape, humane errors, useful defaults, and machine-readable output." That framework, once articulated, shapes how the AI reads every source in the corpus.
|
|
28
28
|
|
|
29
|
+
### Generative rules
|
|
30
|
+
|
|
31
|
+
The rules the consuming AI should apply when it is making decisions with the mixtape. Include a `## Generative rules` section with about five imperatives. These are not summaries of sources; they are portable constraints the AI can carry into new work.
|
|
32
|
+
|
|
33
|
+
Example: "Channel discipline: stdout is for data, stderr is for humans, and exit codes mean what they say." A rule like this resolves dozens of downstream questions without the AI needing to re-open every source.
|
|
34
|
+
|
|
35
|
+
### Stances this corpus takes
|
|
36
|
+
|
|
37
|
+
The opinionated positions the mixtape wants to preserve. Include a `## Stances this corpus takes` section that names what the corpus leans toward, what it resists, and where a dissenting source should temper the rule.
|
|
38
|
+
|
|
39
|
+
This is different from the contested-questions section. Contested questions name the debate; stances state the operating answer this mixtape chooses for its JTBD.
|
|
40
|
+
|
|
29
41
|
### Contested questions
|
|
30
42
|
|
|
31
43
|
Where credible practitioners disagree, name the disagreement and where the curator stands. "There's an ongoing argument about whether CLIs should mirror existing tool conventions or break them deliberately when the underlying behaviour differs. This mixtape leans toward mirroring; sources 7 and 12 represent the dissenting view."
|
|
@@ -74,9 +86,11 @@ A typical synthesis runs:
|
|
|
74
86
|
|
|
75
87
|
1. **Opening framing** (1–2 paragraphs). What this domain is fundamentally about. The frame the curator uses to organize their understanding. Not a definition — a stance.
|
|
76
88
|
2. **The framework or principles** (2–4 paragraphs). The structure the curator sees. Named, not just described.
|
|
77
|
-
3. **
|
|
78
|
-
4. **
|
|
79
|
-
5. **
|
|
89
|
+
3. **Generative rules** (`## Generative rules`, about five imperatives). The small set of rules the consuming AI should remember and apply.
|
|
90
|
+
4. **Stances this corpus takes** (`## Stances this corpus takes`, 1–3 paragraphs or bullets). The opinionated positions and trade-offs this mixtape adopts.
|
|
91
|
+
5. **Contested questions** (1–3 paragraphs). Where credible practitioners disagree. Where the curator stands.
|
|
92
|
+
6. **Important distinctions** (1–2 paragraphs). Concepts the AI is likely to conflate without correction.
|
|
93
|
+
7. **Scope and limits** (1 short paragraph). What this mixtape covers and what it doesn't.
|
|
80
94
|
|
|
81
95
|
This is a default. Vary it when the topic warrants — some domains lead with contested questions, some with distinctions, some with a different opening move. The structure serves the content.
|
|
82
96
|
|
|
@@ -130,4 +144,4 @@ If the synthesis names source numbers ("Source 1 argues..."), it's probably synt
|
|
|
130
144
|
|
|
131
145
|
Plain markdown. No front matter. Begins with a top-level heading that matches the mixtape title (e.g., `# Mobile Design Foundations — Synthesis`). The full file gets included verbatim at the top of `MIXTAPE.md` by `liner compile`.
|
|
132
146
|
|
|
133
|
-
Write the synthesis to `synthesis.md` in the
|
|
147
|
+
Write the synthesis to `synthesis.md` in the corpus folder (`mixtape/synthesis.md` in v2 projects). Show the curator the result before declaring Phase 6 complete.
|