linersh 1.1.3 → 1.2.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 +15 -61
- package/bin/liner.js +60 -16
- package/package.json +10 -17
- package/cli-update-docs/README.md +0 -129
- package/cli-update-docs/SKILL.md +0 -294
- package/cli-update-docs/curator-notes.md +0 -85
- package/cli-update-docs/quality-check-tests.md +0 -435
- package/cli-update-docs/source-finding-tactics.md +0 -224
- package/cli-update-docs/source-quality-hierarchy.md +0 -209
- package/cli-update-docs/synthesis-guidance.md +0 -151
- package/dist/agents/artifact-validation.js +0 -567
- package/dist/agents/artifact-validation.js.map +0 -1
- package/dist/agents/candidate-longlist.js +0 -116
- package/dist/agents/candidate-longlist.js.map +0 -1
- package/dist/agents/detect.js +0 -169
- package/dist/agents/detect.js.map +0 -1
- package/dist/agents/evaluation-assembly.js +0 -270
- package/dist/agents/evaluation-assembly.js.map +0 -1
- package/dist/agents/events.js +0 -8
- package/dist/agents/events.js.map +0 -1
- package/dist/agents/headless-runner.js +0 -432
- package/dist/agents/headless-runner.js.map +0 -1
- package/dist/agents/jtbd-clarify.js +0 -169
- package/dist/agents/jtbd-clarify.js.map +0 -1
- package/dist/agents/models.js +0 -98
- package/dist/agents/models.js.map +0 -1
- package/dist/agents/parsers.js +0 -316
- package/dist/agents/parsers.js.map +0 -1
- package/dist/agents/prompts.js +0 -522
- package/dist/agents/prompts.js.map +0 -1
- package/dist/agents/run-log.js +0 -71
- package/dist/agents/run-log.js.map +0 -1
- package/dist/agents/runner.js +0 -906
- package/dist/agents/runner.js.map +0 -1
- package/dist/agents/types.js +0 -2
- package/dist/agents/types.js.map +0 -1
- package/dist/bin-resolver.js +0 -92
- package/dist/bin-resolver.js.map +0 -1
- package/dist/config.js +0 -282
- package/dist/config.js.map +0 -1
- package/dist/editor.js +0 -40
- package/dist/editor.js.map +0 -1
- package/dist/gates.js +0 -121
- package/dist/gates.js.map +0 -1
- package/dist/ipc.js +0 -145
- package/dist/ipc.js.map +0 -1
- package/dist/open-folder.js +0 -28
- package/dist/open-folder.js.map +0 -1
- package/dist/phases.js +0 -346
- package/dist/phases.js.map +0 -1
- package/dist/progress.js +0 -184
- package/dist/progress.js.map +0 -1
- package/dist/source-inbox.js +0 -297
- package/dist/source-inbox.js.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/version.js +0 -18
- package/dist/version.js.map +0 -1
- package/dist/yaml-io.js +0 -376
- package/dist/yaml-io.js.map +0 -1
- package/maintenance-skill/SKILL.md +0 -18
- package/maintenance-skill/agents/openai.yaml +0 -4
package/cli-update-docs/SKILL.md
DELETED
|
@@ -1,294 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: curating-mixtapes
|
|
3
|
-
description: Use when the user wants to build a "mixtape" — a curated bundle of sources (videos, articles, papers, specs) assembled as AI context for one hyper-specific future-agent task. Triggers include "help me make a mixtape on X", "curate sources on Y for AI", "build a context bundle for Z", "let's research X with Liner", "make me a tape on Y", "help me build a Liner mixtape", or "I want this Liner to help my AI agent do X". Drives the eight-phase Liner curation methodology end-to-end and produces a corpus folder — `tape.yaml`, `synthesis.md`, and `working/*` notes, under `mixtape/` in v2 projects — ready for `liner compile`. Defaults to quick mode (the AI does the heavy lifting, the user confirms at two gates); methodology mode is available when the user wants to engage substantively at every step or is targeting library contribution.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Curating Mixtapes
|
|
7
|
-
|
|
8
|
-
This skill implements the Liner curation methodology (CURATION.md v2.0). A mixtape is a curated bundle of sources designed to make future AI sessions meaningfully better at one hyper-specific task. The bar: a good mixtape demonstrably improves agent output inside the capability it was built for.
|
|
9
|
-
|
|
10
|
-
The output of this skill is a project folder ready for `liner compile`. The skill does not compile.
|
|
11
|
-
|
|
12
|
-
This is an initial curation surface, not a maintenance writer. After a Liner
|
|
13
|
-
Project has identity-bearing Project or Source state, supported changes must go
|
|
14
|
-
through the installed CLI's current `liner project guidance` contract. Do not
|
|
15
|
-
use this skill to edit canonical Project files as a maintenance shortcut.
|
|
16
|
-
|
|
17
|
-
**Runtime requirement:** this skill assumes filesystem access. It reads companion files from its own directory at specific phases and writes artifacts to a project folder. Designed for execution inside Claude Code or as a subprocess driven by the Liner TUI. Not designed for pure-chat use.
|
|
18
|
-
|
|
19
|
-
## Terminology — get these right
|
|
20
|
-
|
|
21
|
-
- **Tape file** (`tape.yaml`) — the recipe. Sources with notes and sections.
|
|
22
|
-
- **Mixtape** — the corpus folder. In v2 projects it lives under `mixtape/`.
|
|
23
|
-
- **Consumable mixtape** — `MIXTAPE.md` plus the `sources/*.md` files inside the corpus folder. What gets pasted into an AI conversation. Produced by `liner compile`.
|
|
24
|
-
|
|
25
|
-
Tape ≠ mixtape. The recipe is small; the mixtape is the realized artifact.
|
|
26
|
-
|
|
27
|
-
## What this skill produces
|
|
28
|
-
|
|
29
|
-
A project folder named for the topic (e.g., `mobile-design-foundations/`) containing a corpus folder. In v2 projects, these files live under `mixtape/`; legacy or standalone skill runs may use the project root:
|
|
30
|
-
|
|
31
|
-
- `tape.yaml` — the recipe, conforming to MIXTAPE-FORMAT v1 (with v1.1 additions: `mode`, `jtbd`, `local_file` sources, optional `render` field on web sources)
|
|
32
|
-
- `synthesis.md` — the curator's distilled understanding of the domain
|
|
33
|
-
- `working/01-jtbd-and-knowledge-map.md` — framing artifacts: JTBD, capability brief, knowledge map, and required source roles
|
|
34
|
-
- `working/02-candidate-longlist.md` — the unfiltered candidate pool
|
|
35
|
-
- `working/03-evaluation.yaml` — keep/trim/drop decisions with rationales, ratings, content evidence, and source-role mapping
|
|
36
|
-
- `working/04-quality-checks.md` — redundancy, coverage, disagreement, framing-gap, source-kind, note-quality, and source-role findings
|
|
37
|
-
- `working/05-operating-fit-audit.md` — optional improvement recommendation when the corpus is not yet strong enough for the Operating Layer
|
|
38
|
-
|
|
39
|
-
`sources/` and `MIXTAPE.md` are produced later by `liner compile` in the same corpus folder. The optional `working/06-empirical-test.md` file is produced only when the curator runs the methodology validation step; it is not a driven TUI phase.
|
|
40
|
-
|
|
41
|
-
When the curator has supplied local material (book chapters, exported PDFs, Reader-Mode-saved articles), the skill may write `local_file` entries in `tape.yaml` pointing at files the curator has placed under `local-sources/` or the legacy `personal/` folder. This is a methodology-mode affordance — the curator's local context belongs to them, not the public web, and the `local_file` source type makes it first-class. Library contributions still exclude `local_file` sources; the skill should not invent them or suggest paths the curator hasn't supplied.
|
|
42
|
-
|
|
43
|
-
## Companion files
|
|
44
|
-
|
|
45
|
-
This skill is split across files in its own directory. Read each companion file at the start of the phase that uses it. Do not skip the read.
|
|
46
|
-
|
|
47
|
-
- `source-finding-tactics.md` — read before Phase 2
|
|
48
|
-
- `source-quality-hierarchy.md` — read before Phase 4
|
|
49
|
-
- `curator-notes.md` — read before Phase 4
|
|
50
|
-
- `quality-check-tests.md` — read before Phase 5
|
|
51
|
-
- `synthesis-guidance.md` — read before Phase 6
|
|
52
|
-
|
|
53
|
-
The orchestration logic, the two modes, the review gates, the AI-bias list, and the failure-mode list stay in this file because they apply across the whole lifecycle.
|
|
54
|
-
|
|
55
|
-
## Two modes
|
|
56
|
-
|
|
57
|
-
Default to **quick mode** unless the user says they want methodology mode or library contribution.
|
|
58
|
-
|
|
59
|
-
**Quick mode.** The AI does maximum work. Defaults at every gate are "looks good, continue." Total wall-clock target: 15–30 minutes. Output quality: good enough for personal use.
|
|
60
|
-
|
|
61
|
-
**Methodology mode.** The curator engages substantively at every phase. Revises the knowledge map. Reviews evaluation rationales. Writes or substantially rewrites the synthesis in their own voice. Runs the empirical test. Several hours over one or more sessions. Output quality: library-eligible.
|
|
62
|
-
|
|
63
|
-
Same lifecycle. Same artifacts. The difference is how much human judgment shows up in the working notes and the synthesis.
|
|
64
|
-
|
|
65
|
-
## Two human-in-the-loop gates
|
|
66
|
-
|
|
67
|
-
Two gates exist regardless of mode. Quick mode defaults them to "continue." Methodology mode pauses for substantive review.
|
|
68
|
-
|
|
69
|
-
- **Gate 1 — Candidate confirmation** (after Phase 2, before Phase 3). Show the candidate long-list. The user confirms before any fetching happens. Saves wasted network calls; catches missing categories early.
|
|
70
|
-
- **Gate 2 — Evaluation review** (after Phase 4, before Phase 6). Show keep/trim/drop with rationales and quality-check findings. The user confirms before synthesis is drafted.
|
|
71
|
-
|
|
72
|
-
## The lifecycle
|
|
73
|
-
|
|
74
|
-
Run these phases in order. Each phase's output feeds the next. Do not reorder.
|
|
75
|
-
|
|
76
|
-
### Phase 1 — Framing
|
|
77
|
-
|
|
78
|
-
Define the reusable capability and sketch a knowledge map.
|
|
79
|
-
|
|
80
|
-
The user-facing question is: **What do you want this Liner to help your AI agent do?** The user can answer in plain language. Do not make them supply source categories, research lanes, or a formal Job Story.
|
|
81
|
-
|
|
82
|
-
Your job in Phase 1 is to translate that plain-language goal into a Capability Brief:
|
|
83
|
-
|
|
84
|
-
- what future AI sessions should be able to do,
|
|
85
|
-
- what outputs, decisions, or behaviors the resource should support,
|
|
86
|
-
- the internal job-to-be-done that will let later phases judge fit,
|
|
87
|
-
- research lanes inferred from the goal,
|
|
88
|
-
- source requirements and exclusions,
|
|
89
|
-
- runtime behavior for the future agent, including when it should ask the user clarifying questions.
|
|
90
|
-
|
|
91
|
-
Use these exact level-three headings inside the Capability Brief so the Operating Layer can promote the contract reliably: `### Reusable AI capability`, `### Exact runtime output contract`, `### Internal job-to-be-done`, `### Inferred research lanes`, `### Required source roles`, `### Source exclusions`, and `### Runtime autonomy, abstention, and escalation`.
|
|
92
|
-
|
|
93
|
-
The internal JTBD should be hyper-specific. "SEO" is a topic. "SEO keyword research for a mental-health startup specialized in brain surgery" is a capability narrow enough to research. If the user's goal is still broad, ask targeted questions and descend until the capability is specific enough that a corpus built for it could outperform generic model knowledge.
|
|
94
|
-
|
|
95
|
-
**Capability brief.** A short statement of the concrete capability this mixtape should give a downstream AI agent. This is not a persona or project name. It is the work the corpus must make the agent better at.
|
|
96
|
-
|
|
97
|
-
**Knowledge map.** A short outline of the conceptual territory the corpus needs to cover. Four to eight sections, each with a few sub-areas. Treat it as a hypothesis — it will get revised during research.
|
|
98
|
-
|
|
99
|
-
**Required source roles.** The evidence plan for the corpus. Name the kinds of sources the downstream agent needs before the mixtape can be trusted. Each role must include: role name, why it matters, what good evidence looks like, and minimum coverage. These are inferred from the user's desired capability, not hardcoded categories.
|
|
100
|
-
|
|
101
|
-
**Capability patterns.** If the user's goal implies a recurring evidence shape, name it in the Capability Brief. The most important current pattern is `reference-translation`: the future agent receives images, moodboards, visual references, inspiration, style examples, artifacts, or examples from one medium/domain and must turn them into another output. For this pattern, source roles must separate input/reference-domain interpretation, cross-domain translation method, target-output constraints, critique/clarification, and caller handoff language. Target-output implementation sources are bridge evidence; they cannot satisfy the reference-domain or translation-method roles by themselves.
|
|
102
|
-
|
|
103
|
-
Write the Capability Brief, internal JTBD, research lanes, knowledge map, and Required source roles to `working/01-jtbd-and-knowledge-map.md`. In quick mode: draft, show, get a one-line confirmation. In methodology mode: iterate with the curator until the capability brief, knowledge map, and source roles feel right.
|
|
104
|
-
|
|
105
|
-
### Phase 2 — Candidate discovery
|
|
106
|
-
|
|
107
|
-
**Read `source-finding-tactics.md` before starting this phase.**
|
|
108
|
-
|
|
109
|
-
Generate a long list of candidate sources across the knowledge map and required source roles. URLs and titles only — no fetching yet. Aim wide enough for the evidence contract: roughly two to four times the eventual kept count, with the actual candidate count derived from the required source roles, capability pattern, and source ecology. This phase is recall, not precision.
|
|
110
|
-
|
|
111
|
-
Verify each candidate exists at the URL given. AI is prone to hallucinating plausible-sounding URLs. Treat unverified URLs as candidates only until they're confirmed.
|
|
112
|
-
|
|
113
|
-
Write to `working/02-candidate-longlist.md`, grouped by knowledge-map section. For each candidate: URL, title, required source role served, and one-line reason it's a candidate.
|
|
114
|
-
|
|
115
|
-
**At Gate 1, show the long-list and ask:** "Anything obviously missing? Anything obviously wrong? Confirm to start fetching." In quick mode the default is "looks good, continue." In methodology mode, expect real edits.
|
|
116
|
-
|
|
117
|
-
### Phase 3 — Fetching
|
|
118
|
-
|
|
119
|
-
Pull content for every confirmed candidate.
|
|
120
|
-
|
|
121
|
-
For each URL, retrieve the full text. YouTube: transcript. Articles, papers, docs: extracted body text. Skim each as it comes back to confirm the URL contains what the title promised.
|
|
122
|
-
|
|
123
|
-
If a URL fails to fetch (paywall, dead link, no transcript, geographic block): note the failure, decide whether the source is critical enough to chase via an alternate route (Wayback Machine, alternate venue), and either find a substitute or drop it. Don't silently lose candidates.
|
|
124
|
-
|
|
125
|
-
Bound the chase: try one direct fetch/read and at most one recovery attempt per candidate. After two failed retrieval attempts total, stop searching for that candidate and carry the failure into Phase 4 as part of the decision rationale.
|
|
126
|
-
|
|
127
|
-
A successful transcript fetch is not the same as a high-value source. Many tutorial videos transcribe cleanly but contain no transferable content. The next phase handles that judgment.
|
|
128
|
-
|
|
129
|
-
Don't write fetched content into the project folder yet. That happens at compile time, only for kept sources.
|
|
130
|
-
|
|
131
|
-
### Phase 4 — Evaluation
|
|
132
|
-
|
|
133
|
-
**Read `source-quality-hierarchy.md` and `curator-notes.md` before starting this phase.**
|
|
134
|
-
|
|
135
|
-
Read every fetched source against the JTBD. Decide keep / trim / drop. Rate kept sources 1–5. Draft curator notes for kept and trim sources.
|
|
136
|
-
|
|
137
|
-
If content was unavailable after the bounded fetch attempts, still write a decision for that candidate. Usually choose `dropped`. Do not mark a source `kept` or `trim` from title, URL, search snippet, crawler metadata, or model memory alone.
|
|
138
|
-
|
|
139
|
-
Every `kept` or `trim` source must carry evidence fields in `working/03-evaluation.yaml`:
|
|
140
|
-
|
|
141
|
-
- `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. `metadata_only` and `unavailable` candidates must be `dropped`.
|
|
142
|
-
- `content_quality: high | medium` — low-quality content, SEO filler, AI-generated sludge, generic listicles, homepages, galleries without rationale, or shallow transcripts must be `dropped`.
|
|
143
|
-
- `evidence:` — at least two content-specific bullets from the fetched/read source. These are concrete claims, examples, sections, transcript moments, methods, or limitations seen in the content. Search snippets and titles do not count.
|
|
144
|
-
|
|
145
|
-
Write decisions incrementally as section-sized fragments in `working/evaluation-decisions/`, then write or let Liner assemble `working/03-evaluation.yaml`. Do not hold all decisions in conversation memory until the end.
|
|
146
|
-
|
|
147
|
-
```yaml
|
|
148
|
-
candidates:
|
|
149
|
-
- url: https://example.com/source
|
|
150
|
-
title: Source title
|
|
151
|
-
decision: kept # kept | trim | dropped
|
|
152
|
-
rating: 5 # 1-5; required for kept and trim
|
|
153
|
-
fetch_status: readable # readable | partial; metadata_only/unavailable are dropped
|
|
154
|
-
content_quality: high # high | medium; low is dropped
|
|
155
|
-
source_role: canonical method
|
|
156
|
-
evidence:
|
|
157
|
-
- First content-specific claim, section, example, or method retrieved from the source.
|
|
158
|
-
- Second content-specific detail proving the source was read.
|
|
159
|
-
section: foundations
|
|
160
|
-
rationale: One-sentence reason this decision was made.
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
Drafted curator notes land in `tape.yaml` at Phase 7. Write them now in their final form; don't postpone the work to assembly.
|
|
164
|
-
|
|
165
|
-
### Phase 5 — Quality checks
|
|
166
|
-
|
|
167
|
-
**Read `quality-check-tests.md` before starting this phase.**
|
|
168
|
-
|
|
169
|
-
Step back from the keep-pile. Run the core-action test and the eight standard tests. Document findings in `working/04-quality-checks.md`.
|
|
170
|
-
|
|
171
|
-
If a test fails, fix it before moving on when the fix is small enough for the quality phase. If the failure points to a wider source-role gap, write `working/05-operating-fit-audit.md` with `status: improvement_recommended`, the gap, why it matters, concrete search lanes, and custom-source suggestions. Do not call the corpus "ready with limitation"; let Liner offer the user an improvement pass or a clear Skip.
|
|
172
|
-
|
|
173
|
-
If the bounded Quality audit backfills a source, add the verified URL to `working/02-candidate-longlist.md` before adding it to `working/03-evaluation.yaml`. Parse both artifacts and confirm their candidate counts still match before reporting Phase 5 complete. The longlist remains the complete candidate ledger even when a candidate is discovered after Gate 1.
|
|
174
|
-
|
|
175
|
-
*Tip: this phase benefits from running with fresh attention. If the conversation has been long, consider starting a separate chat with just the JTBD, capability brief, required source roles, knowledge map, and the kept-source list (titles + notes only) to run the checks. Optional, not required by the methodology.*
|
|
176
|
-
|
|
177
|
-
**At Gate 2, show the final keep-list, the curator notes, and the quality-check findings. Ask:** "Confirm to proceed to synthesis." Quick mode default: continue. Methodology mode: expect substantive edits.
|
|
178
|
-
|
|
179
|
-
### Phase 6 — Synthesis
|
|
180
|
-
|
|
181
|
-
**Read `synthesis-guidance.md` before starting this phase.**
|
|
182
|
-
|
|
183
|
-
Draft `synthesis.md`. The synthesis is the curator's distilled understanding of the domain expressed as continuous prose. 800–2000 words. It must include `## Generative rules` and `## Stances this corpus takes` so the consuming AI gets explicit operating rules and corpus stances before reading individual sources.
|
|
184
|
-
|
|
185
|
-
Quick mode: draft, show, default to "looks good, save it." The curator lightly edits if they want.
|
|
186
|
-
|
|
187
|
-
Methodology mode: draft a starting point. Expect the curator to rewrite it substantially in their own voice. Library mixtapes need a substantially curator-written synthesis.
|
|
188
|
-
|
|
189
|
-
### Phase 7 — Assembly
|
|
190
|
-
|
|
191
|
-
Write `tape.yaml`.
|
|
192
|
-
|
|
193
|
-
**Required top-level fields:** `title`, `description`, `curator`, `version: 1`, `mode` (`quick` or `methodology`), `sources` (non-empty list).
|
|
194
|
-
|
|
195
|
-
**Recommended top-level fields:** `tags`, `created` (ISO date), `jtbd`, `methodology_version: "2.0"`, `license`.
|
|
196
|
-
|
|
197
|
-
**Each kept source needs:**
|
|
198
|
-
|
|
199
|
-
- `type` — `youtube`, `web`, `local_file`, or `skill`
|
|
200
|
-
- `url` for `youtube` and `web`; `path` for `local_file` or local/installed `skill` sources; `citation` for `local_file`
|
|
201
|
-
- `note` — the curator note drafted in Phase 4
|
|
202
|
-
- `section` — matches a knowledge-map section
|
|
203
|
-
- `priority: optional` — only for sources the user can skip with `--skip-optional`
|
|
204
|
-
|
|
205
|
-
Order sources within each section by importance (most important first). Order sections by reading order (foundations first, applications later).
|
|
206
|
-
|
|
207
|
-
**Validate before declaring done:**
|
|
208
|
-
|
|
209
|
-
- YAML parses
|
|
210
|
-
- All required fields present
|
|
211
|
-
- `version: 1`
|
|
212
|
-
- `mode` is `quick` or `methodology`
|
|
213
|
-
- `sources` is non-empty
|
|
214
|
-
- Every source has `type`, `note`, and `section`
|
|
215
|
-
- Every `type` is `youtube`, `web`, `local_file`, or `skill`
|
|
216
|
-
- Every `youtube` or `web` source has a parseable `url`
|
|
217
|
-
- Every `local_file` source has `path` and `citation`
|
|
218
|
-
- Every local or installed `skill` Source has `path`; a remote skill Source has
|
|
219
|
-
a parseable `url`
|
|
220
|
-
|
|
221
|
-
If validation fails, fix and re-check before showing the user.
|
|
222
|
-
|
|
223
|
-
### Empirical test — methodology validation (optional in quick mode, required for library contribution)
|
|
224
|
-
|
|
225
|
-
The only real test of whether the mixtape works.
|
|
226
|
-
|
|
227
|
-
1. Compile: `liner compile <project-folder>`
|
|
228
|
-
2. Open a fresh AI conversation. Don't paste the mixtape. Ask a substantive question that should benefit from the JTBD. Save the response.
|
|
229
|
-
3. Open another fresh AI conversation. Paste `mixtape/MIXTAPE.md` plus relevant `mixtape/sources/*.md` files. Ask the same question. Save the response.
|
|
230
|
-
4. Compare. Is the with-mixtape response meaningfully better — more specific, more accurate, more nuanced, less generic?
|
|
231
|
-
|
|
232
|
-
Write findings to `working/06-empirical-test.md`: the question, the two responses (or summaries), the honest verdict. If the mixtape didn't help: what's missing? Back to Phase 2 or 5.
|
|
233
|
-
|
|
234
|
-
If the answers are similar, the mixtape isn't earning its place. Either the sources are too generic, the synthesis isn't doing enough work, or the JTBD is too broad. Don't skip this for library contributions.
|
|
235
|
-
|
|
236
|
-
## AI biases this skill must compensate for
|
|
237
|
-
|
|
238
|
-
The skill is the AI running the methodology. The AI has systematic biases that produce worse mixtapes if left uncorrected. Watch for these in your own work throughout every phase — these are not phase-specific.
|
|
239
|
-
|
|
240
|
-
- **Popularity bias.** AI surfaces popular and recent sources at the expense of canonical or older ones. Search deliberately for primary sources. The Apple HIG, the W3C spec, the canonical paper — these often won't appear in generic search results and need to be found directly.
|
|
241
|
-
- **URL hallucination.** AI invents URLs that sound plausible but don't exist. Verify every URL with a web fetch before adding it to the candidate list. A 404 candidate is worse than a missing one.
|
|
242
|
-
- **Generic curator notes.** AI drafts notes that say "this is a useful resource" without specifying role, location of value, or limitations. Compensate by writing each note against the three-thing template in `curator-notes.md`.
|
|
243
|
-
- **Primary-document blindness.** AI gravitates to secondary commentary over primary sources. If a domain has a spec, a standard, or a foundational paper, search for it specifically. Don't accept commentary as a substitute.
|
|
244
|
-
- **Framing-gap blindness.** AI can't see what it didn't search for. The framing-gap test in Phase 5 is the methodological correction for this. Run it with intent — not as a checkbox, as a genuine "what am I missing" question.
|
|
245
|
-
- **Source-role blindness.** AI can fill every knowledge-map section while missing an evidence role the job depends on. Use the required source roles from Phase 1 as a contract in Phase 2 and an audit checklist in Phase 5.
|
|
246
|
-
- **Pattern flattening.** AI turns specialized capabilities into generic topic packs. A reference-translation project becomes "web design"; a medical SEO project becomes "SEO"; a legal drafting project becomes "writing." When Phase 1 names a capability pattern, Phase 2 and Phase 5 must preserve that pattern-specific evidence contract.
|
|
247
|
-
- **Synthesis-as-recap.** AI-drafted synthesis tends to recap source content rather than distill the curator's framing of the domain. Push toward principles, contested questions, and framework distinctions — not "Source 1 says X; Source 2 says Y."
|
|
248
|
-
|
|
249
|
-
If you find yourself producing any of these patterns, stop and correct.
|
|
250
|
-
|
|
251
|
-
## Final delivery
|
|
252
|
-
|
|
253
|
-
When all phases complete, the project folder contains:
|
|
254
|
-
|
|
255
|
-
```
|
|
256
|
-
<topic-slug>/
|
|
257
|
-
└── mixtape/
|
|
258
|
-
├── tape.yaml
|
|
259
|
-
├── synthesis.md
|
|
260
|
-
└── working/
|
|
261
|
-
├── 01-jtbd-and-knowledge-map.md
|
|
262
|
-
├── 02-candidate-longlist.md
|
|
263
|
-
├── 03-evaluation.yaml
|
|
264
|
-
├── 04-quality-checks.md
|
|
265
|
-
├── 05-operating-fit-audit.md # if an improvement pass is recommended
|
|
266
|
-
└── 06-empirical-test.md # if empirical validation was run
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
Tell the user the folder is ready to compile with `liner compile <topic-slug>`. The compile step produces `mixtape/MIXTAPE.md` and `mixtape/sources/`.
|
|
270
|
-
|
|
271
|
-
## What this skill does NOT do
|
|
272
|
-
|
|
273
|
-
- **Does not run `liner compile`.** That's the user's call, with the user's tools.
|
|
274
|
-
- **Does not fetch from gated accounts or private systems.** v1 supports public `youtube` and `web` URLs plus curator-supplied `local_file` and `skill` sources. The skill may reference local files the curator supplied, but it must not invent private paths or bypass access controls.
|
|
275
|
-
- **Does not maintain the shared content cache.** That's the CLI's job.
|
|
276
|
-
- **Does not maintain an existing Liner Project.** Use Liner Core directly or
|
|
277
|
-
install the optional Maintenance Adapter, which delegates to
|
|
278
|
-
`liner project guidance`.
|
|
279
|
-
- **Does not publish to the library.** Library contributions happen via PR to the Liner repo, in methodology mode, after passing the empirical test.
|
|
280
|
-
|
|
281
|
-
## Common failure modes
|
|
282
|
-
|
|
283
|
-
Patterns that produce bad mixtapes. Watch for them in your own work:
|
|
284
|
-
|
|
285
|
-
- **The greatest-hits mixtape.** A list of the most famous resources. Looks impressive, adds little value because the AI already knows about famous resources from training. Curate for *non-obvious* sources.
|
|
286
|
-
- **The unfocused mixtape.** No clear JTBD. Tries to cover the field. Shallow on everything, deep on nothing.
|
|
287
|
-
- **The author-tribute mixtape.** Three of five sources by the same person because the curator is a fan. Narrows perspective, reduces synthesis quality.
|
|
288
|
-
- **The transcript dump.** All video transcripts, no articles, no specs, no primary sources. Mix source types.
|
|
289
|
-
- **The noteless mixtape.** Sources without curator notes. The curator either was lazy or didn't have a reason. Both are problems.
|
|
290
|
-
- **The aspirational mixtape.** Sources the curator thinks people *should* read, not sources that help with the JTBD. Mixtapes are tools, not reading recommendations.
|
|
291
|
-
- **The single-pass mixtape.** Curated without a framing-gap test. Well-covered within one narrow framing, blind to perspectives the curator didn't think to look for.
|
|
292
|
-
- **The role-missing mixtape.** Sections appear covered, but a required source role from Phase 1 has no fetched, useful evidence.
|
|
293
|
-
|
|
294
|
-
If the mixtape this skill produces fits any of these patterns, return to the relevant phase and fix it.
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Curator notes
|
|
2
|
-
|
|
3
|
-
Loaded by the `curating-mixtapes` skill at the start of Phase 4 (Evaluation).
|
|
4
|
-
|
|
5
|
-
This file describes how to draft curator notes. Apply it whenever you're writing the `note` field for a kept or trim source. Notes are drafted in Phase 4 during evaluation and land in `tape.yaml` at Phase 7 — write them in their final form now; don't postpone the work.
|
|
6
|
-
|
|
7
|
-
Curator notes are the highest-leverage feature in the mixtape format. The note is what tells the consuming AI which sources matter for which questions. The synthesis frames the domain; the notes route the AI's attention to specific sources when a specific question arises. Without notes, the AI sees a list of sources and has to guess which ones are relevant. With good notes, the AI can route precisely.
|
|
8
|
-
|
|
9
|
-
This is what "liner notes" means in the product name. The note is doing real work.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## The three-thing template
|
|
14
|
-
|
|
15
|
-
Every good note answers three questions about its source:
|
|
16
|
-
|
|
17
|
-
1. **Why is this source in the mixtape?** What role does it play? Is it foundational, supplementary, contested, illustrative? "Watch first — this is the foundational piece." "Skim if time permits — useful for context but not essential." "The contested counterpoint to Source 4."
|
|
18
|
-
|
|
19
|
-
2. **Where is the high-value portion?** Most sources are not uniformly dense. A talk's first ten minutes might be setup; a paper's middle section might be the methodology no one needs; an article's three closing paragraphs might be the only part that matters. Name it. "The first ten minutes are setup; the load-bearing content starts around 10:30." "Section 3 is the substantive one." "Skip the introduction; the framework is in the second half."
|
|
20
|
-
|
|
21
|
-
3. **What are the source's limitations?** Where is this source out of date, narrow, or biased? "Dated on platform specifics, durable on principles." "Strong perspective; read alongside Source 7 for the counterargument." "Pre-2022 — doesn't address [recent development]."
|
|
22
|
-
|
|
23
|
-
A note that addresses all three is doing its full job. A note that addresses one or two is adequate. A note that addresses none — "this is a useful resource" — is useless and shouldn't ship.
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Length
|
|
28
|
-
|
|
29
|
-
**15–40 words typically.** Shorter is fine when the source is self-explanatory. Longer is usually a sign of one of two things:
|
|
30
|
-
|
|
31
|
-
- The source needs more framing than a note should carry. Move some of the framing into the synthesis instead.
|
|
32
|
-
- The note is doing work the synthesis should be doing. If you're explaining a framework concept in a note, that's a synthesis problem — the note is patching for the synthesis's gap.
|
|
33
|
-
|
|
34
|
-
When a note exceeds 60 words, stop and ask which of these two patterns is happening. Fix the underlying issue rather than padding the note.
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## What makes notes bad
|
|
39
|
-
|
|
40
|
-
Notes drift toward generic praise by default. These are the patterns to watch for in your own drafts.
|
|
41
|
-
|
|
42
|
-
- **"This is a useful resource."** Says nothing. Names no role, no location of value, no limitation. The AI can't route on this. Replace it with a specific answer to at least one of the three questions.
|
|
43
|
-
- **"Comprehensive overview of [topic]."** Implies the source is uniformly valuable, which is almost never true. Even if the source really is comprehensive, the AI needs to know which parts matter for which questions.
|
|
44
|
-
- **"Highly recommended."** Reviewer-style praise, not curator routing. The fact that a source was kept means it's recommended. The note's job is to say *how to use it*, not to vouch for it.
|
|
45
|
-
- **Restating the title or abstract.** If the title is "Designing CLIs People Love," the note shouldn't say "About designing CLIs people love." Say what *role* it plays in this corpus.
|
|
46
|
-
- **Pure summary.** "Argues that CLIs should follow Unix conventions." That's what the source says. The note should say what the source is *for* in this mixtape — foundational, contested, etc.
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## How notes interact with the synthesis
|
|
51
|
-
|
|
52
|
-
The synthesis and the notes do different jobs.
|
|
53
|
-
|
|
54
|
-
- **The synthesis** frames the whole domain. It's what the consuming AI reads first, and it sets up the curator's view of the territory.
|
|
55
|
-
- **The notes** route the AI's attention to specific sources during a specific conversation. When a question comes up that one source addresses particularly well, the note is the signal that says "open this one."
|
|
56
|
-
|
|
57
|
-
This division is why notes don't need to explain the source's content — the synthesis already provided the conceptual frame. The note's job is positional, not explanatory.
|
|
58
|
-
|
|
59
|
-
A common failure mode is writing notes that try to teach the AI what the source says. That's the synthesis's job. The note's job is to tell the AI when and how to use the source.
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Quick mode vs. methodology mode
|
|
64
|
-
|
|
65
|
-
**Quick mode:** AI drafts the note during Phase 4. Use the three-thing template. Show the curator the drafted notes at Gate 2. Default is "looks good, save it." Light edits welcome.
|
|
66
|
-
|
|
67
|
-
**Methodology mode:** AI drafts a starting point. Expect the curator to rewrite each note substantively. The notes carry the curator's voice and the curator's specific framing of what each source is for. AI-drafted notes with light edits don't meet the methodology-mode bar.
|
|
68
|
-
|
|
69
|
-
In both modes, notes are required. A source without a note doesn't ship.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Worked examples
|
|
74
|
-
|
|
75
|
-
Good notes:
|
|
76
|
-
|
|
77
|
-
- "Watch first for the operating model: the middle section names the workflow constraint this corpus adopts. Dated on tool names, durable on the interaction principle."
|
|
78
|
-
- "Use as the counterpoint to the default stance. Strong on risks and failure modes; do not treat it as the corpus's main recommendation."
|
|
79
|
-
- "Skim the setup and use the worked example section. It shows the output bar, but the implementation details are platform-specific."
|
|
80
|
-
|
|
81
|
-
Bad notes:
|
|
82
|
-
|
|
83
|
-
- "Useful overview of the topic."
|
|
84
|
-
- "Highly recommended resource."
|
|
85
|
-
- "Good background reading."
|