@bendyline/gilde 0.1.86 → 0.1.87

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.
Files changed (104) hide show
  1. package/data/craftbook-templates/index.json +1 -1
  2. package/data/craftbook-templates/raw-index.json +1 -1
  3. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.5/craftbook.json +226 -0
  4. package/data/craftbook-templates/ta/tailor-resume/versions/1.0.5/test.json +79 -0
  5. package/data/knowledge-catalogs/ca/caselaw-alaska-part-0001/manifest.json +24 -0
  6. package/data/knowledge-catalogs/ca/caselaw-alaska-part-0001/versions/2026.10.1/manifest.json +658 -0
  7. package/data/knowledge-catalogs/index.json +1 -1
  8. package/data/knowledge-catalogs/raw-index.json +1 -1
  9. package/data/project-types/ch/checkers/versions/1.2.1/about.md +9 -0
  10. package/data/project-types/ch/checkers/versions/1.2.1/game.json +77 -0
  11. package/data/project-types/ch/checkers/versions/1.2.1/manifest.json +168 -0
  12. package/data/project-types/ch/checkers/versions/1.2.1/mission.md +9 -0
  13. package/data/project-types/ch/checkers/versions/1.2.1/pages/board/index.html +1158 -0
  14. package/data/project-types/ch/chess/versions/1.0.4/about.md +9 -0
  15. package/data/project-types/ch/chess/versions/1.0.4/game.json +127 -0
  16. package/data/project-types/ch/chess/versions/1.0.4/manifest.json +182 -0
  17. package/data/project-types/ch/chess/versions/1.0.4/mission.md +8 -0
  18. package/data/project-types/ch/chess/versions/1.0.4/pages/board/index.html +851 -0
  19. package/data/project-types/de/design-scheme/versions/1.0.2/about.md +6 -0
  20. package/data/project-types/de/design-scheme/versions/1.0.2/manifest.json +70 -0
  21. package/data/project-types/de/design-scheme/versions/1.0.2/mission.md +3 -0
  22. package/data/project-types/de/design-scheme/versions/1.0.2/pages/gallery/index.html +212 -0
  23. package/data/project-types/de/design-scheme/versions/1.0.2/schemes/index.json +9 -0
  24. package/data/project-types/de/design-scheme/versions/1.0.2/schemes/warm-dusk.json +4 -0
  25. package/data/project-types/ev/event-planner/versions/1.0.2/about.md +7 -0
  26. package/data/project-types/ev/event-planner/versions/1.0.2/budget.json +5 -0
  27. package/data/project-types/ev/event-planner/versions/1.0.2/guests.json +10 -0
  28. package/data/project-types/ev/event-planner/versions/1.0.2/manifest.json +171 -0
  29. package/data/project-types/ev/event-planner/versions/1.0.2/mission.md +6 -0
  30. package/data/project-types/ev/event-planner/versions/1.0.2/pages/dashboard/index.html +283 -0
  31. package/data/project-types/fi/fitness-coach/versions/1.0.2/about.md +7 -0
  32. package/data/project-types/fi/fitness-coach/versions/1.0.2/manifest.json +126 -0
  33. package/data/project-types/fi/fitness-coach/versions/1.0.2/mission.md +7 -0
  34. package/data/project-types/fi/fitness-coach/versions/1.0.2/pages/dashboard/index.html +273 -0
  35. package/data/project-types/fi/fitness-coach/versions/1.0.2/training.json +6 -0
  36. package/data/project-types/fl/flashcards/versions/1.1.1/about.md +8 -0
  37. package/data/project-types/fl/flashcards/versions/1.1.1/deck.json +7 -0
  38. package/data/project-types/fl/flashcards/versions/1.1.1/manifest.json +168 -0
  39. package/data/project-types/fl/flashcards/versions/1.1.1/mission.md +6 -0
  40. package/data/project-types/fl/flashcards/versions/1.1.1/pages/review/index.html +477 -0
  41. package/data/project-types/fr/freelance-office/versions/1.0.2/about.md +6 -0
  42. package/data/project-types/fr/freelance-office/versions/1.0.2/invoices.json +9 -0
  43. package/data/project-types/fr/freelance-office/versions/1.0.2/manifest.json +143 -0
  44. package/data/project-types/fr/freelance-office/versions/1.0.2/mission.md +6 -0
  45. package/data/project-types/fr/freelance-office/versions/1.0.2/pages/dashboard/index.html +258 -0
  46. package/data/project-types/fu/fundraiser-hq/versions/1.0.2/about.md +7 -0
  47. package/data/project-types/fu/fundraiser-hq/versions/1.0.2/donations.json +7 -0
  48. package/data/project-types/fu/fundraiser-hq/versions/1.0.2/manifest.json +127 -0
  49. package/data/project-types/fu/fundraiser-hq/versions/1.0.2/mission.md +6 -0
  50. package/data/project-types/fu/fundraiser-hq/versions/1.0.2/pages/dashboard/index.html +261 -0
  51. package/data/project-types/go/go/versions/1.0.2/about.md +9 -0
  52. package/data/project-types/go/go/versions/1.0.2/game.json +103 -0
  53. package/data/project-types/go/go/versions/1.0.2/manifest.json +168 -0
  54. package/data/project-types/go/go/versions/1.0.2/mission.md +8 -0
  55. package/data/project-types/go/go/versions/1.0.2/pages/board/index.html +855 -0
  56. package/data/project-types/ho/household-budget/versions/1.0.3/about.md +6 -0
  57. package/data/project-types/ho/household-budget/versions/1.0.3/ledger.json +5 -0
  58. package/data/project-types/ho/household-budget/versions/1.0.3/manifest.json +164 -0
  59. package/data/project-types/ho/household-budget/versions/1.0.3/mission.md +5 -0
  60. package/data/project-types/ho/household-budget/versions/1.0.3/pages/dashboard/index.html +340 -0
  61. package/data/project-types/ho/household-manual/versions/1.0.2/about.md +7 -0
  62. package/data/project-types/ho/household-manual/versions/1.0.2/manifest.json +153 -0
  63. package/data/project-types/ho/household-manual/versions/1.0.2/mission.md +8 -0
  64. package/data/project-types/ho/household-manual/versions/1.0.2/pages/dashboard/index.html +258 -0
  65. package/data/project-types/ho/household-manual/versions/1.0.2/systems.json +8 -0
  66. package/data/project-types/index.json +1 -1
  67. package/data/project-types/jo/job-hunt/versions/1.0.2/about.md +10 -0
  68. package/data/project-types/jo/job-hunt/versions/1.0.2/activity.json +4 -0
  69. package/data/project-types/jo/job-hunt/versions/1.0.2/manifest.json +213 -0
  70. package/data/project-types/jo/job-hunt/versions/1.0.2/mission.md +9 -0
  71. package/data/project-types/jo/job-hunt/versions/1.0.2/pages/dashboard/index.html +430 -0
  72. package/data/project-types/jo/job-hunt/versions/1.0.2/pipeline.json +6 -0
  73. package/data/project-types/la/language-trainer/versions/1.0.2/about.md +6 -0
  74. package/data/project-types/la/language-trainer/versions/1.0.2/manifest.json +80 -0
  75. package/data/project-types/la/language-trainer/versions/1.0.2/mission.md +4 -0
  76. package/data/project-types/la/language-trainer/versions/1.0.2/pages/dashboard/index.html +268 -0
  77. package/data/project-types/la/language-trainer/versions/1.0.2/progress.json +7 -0
  78. package/data/project-types/li/life-binder/versions/1.0.3/about.md +7 -0
  79. package/data/project-types/li/life-binder/versions/1.0.3/documents.json +145 -0
  80. package/data/project-types/li/life-binder/versions/1.0.3/manifest.json +138 -0
  81. package/data/project-types/li/life-binder/versions/1.0.3/mission.md +6 -0
  82. package/data/project-types/li/life-binder/versions/1.0.3/pages/dashboard/index.html +248 -0
  83. package/data/project-types/me/meal-planner/versions/1.0.2/about.md +6 -0
  84. package/data/project-types/me/meal-planner/versions/1.0.2/manifest.json +160 -0
  85. package/data/project-types/me/meal-planner/versions/1.0.2/menu.json +5 -0
  86. package/data/project-types/me/meal-planner/versions/1.0.2/mission.md +5 -0
  87. package/data/project-types/me/meal-planner/versions/1.0.2/pages/dashboard/index.html +248 -0
  88. package/data/project-types/me/meal-planner/versions/1.0.2/pantry.json +9 -0
  89. package/data/project-types/no/novel-writing-room/versions/1.0.2/about.md +7 -0
  90. package/data/project-types/no/novel-writing-room/versions/1.0.2/chapters.json +10 -0
  91. package/data/project-types/no/novel-writing-room/versions/1.0.2/manifest.json +158 -0
  92. package/data/project-types/no/novel-writing-room/versions/1.0.2/mission.md +7 -0
  93. package/data/project-types/no/novel-writing-room/versions/1.0.2/pages/dashboard/index.html +264 -0
  94. package/data/project-types/no/novel-writing-room/versions/1.0.2/sessions.json +6 -0
  95. package/data/project-types/raw-index.json +1 -1
  96. package/data/project-types/tr/trip-planner/versions/1.0.2/about.md +7 -0
  97. package/data/project-types/tr/trip-planner/versions/1.0.2/journal.json +4 -0
  98. package/data/project-types/tr/trip-planner/versions/1.0.2/manifest.json +194 -0
  99. package/data/project-types/tr/trip-planner/versions/1.0.2/mission.md +4 -0
  100. package/data/project-types/tr/trip-planner/versions/1.0.2/packing.json +8 -0
  101. package/data/project-types/tr/trip-planner/versions/1.0.2/pages/dashboard/index.html +308 -0
  102. package/data/project-types/tr/trip-planner/versions/1.0.2/trip.json +7 -0
  103. package/package.json +1 -1
  104. package/schemas/project-type-version.schema.json +13 -0
@@ -0,0 +1,226 @@
1
+ {
2
+ "id": "tailor-resume",
3
+ "name": "Tailor Résumé to a Posting",
4
+ "description": "Adapt an EXISTING résumé to a specific job posting — a fit map of must-hit requirements first, then a tailored variant that re-orders and re-words real experience without inventing any. Distinct from building a résumé from scratch (see Résumé / CV): this book starts from a base résumé plus a posting and produces the targeted variant along with honest gap notes for the cover letter and interview. Use per serious application in a job search.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Map the fit (planner) — must-hit requirements classified strong / partial / gap against the base résumé → gated on artifact `{{workPath}}/fit-map.md` (markdown-notes)\n2. Tailor the résumé (copywriter) — the tailored variant — re-ordered, re-worded, nothing invented → gated on `resume-tailored.md` (markdown-doc)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
5
+ "entryStepId": "fit-map",
6
+ "triggers": [
7
+ "tailor my resume",
8
+ "adapt my resume to this job",
9
+ "resume for this posting",
10
+ "tailor cv to a posting"
11
+ ],
12
+ "paramSchema": {
13
+ "type": "object",
14
+ "properties": {
15
+ "workPath": {
16
+ "type": "string",
17
+ "title": "Working folder",
18
+ "description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
19
+ "default": "{{task.dir}}"
20
+ }
21
+ }
22
+ },
23
+ "steps": [
24
+ {
25
+ "id": "fit-map",
26
+ "name": "Map the fit",
27
+ "description": "must-hit requirements classified strong / partial / gap against the base résumé",
28
+ "prompt": "Map the posting against the real résumé before touching a word. Step 1: locate the base résumé and the job posting in the workspace or project documents; if either is missing, ask for it briefly and stop until provided. Step 2: extract the posting's must-hit requirements and keywords — the skills, experience markers, and phrases a screener will scan for. Step 3: classify EVERY must-hit item against the base résumé: strong-match (already evidenced), partial (evidenced but buried or under-worded), or GAP (not evidenced — and it stays a gap; inventing experience is forbidden). Step 4: decide the tailoring moves for each strong/partial item — which bullet moves up, which summary line changes, which keyword gets woven where. Step 5: write an explicit '## Gaps' section listing every unmet requirement with how to address it honestly in the cover letter or interview instead. Step 6: close with an acceptance-criteria checklist ('every must-hit addressed or consciously in Gaps', 'no invented experience', 'page count unchanged or lower', 'summary rewritten for THIS role'). Write the fit map + checklist via write_task_note AND to {{workPath}}/fit-map.md.\n\nThe deliverable `{{workPath}}/fit-map.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
29
+ "suggestedRole": "planner",
30
+ "toolPolicy": {
31
+ "disallowBuiltinToolsets": [
32
+ "ai-apps",
33
+ "archives",
34
+ "audio",
35
+ "browser-automation",
36
+ "code-execution",
37
+ "craftbooks",
38
+ "data-tables",
39
+ "entity-intel",
40
+ "git",
41
+ "image-intel",
42
+ "images",
43
+ "role-delegation",
44
+ "role-delegation-escalation",
45
+ "security-intel",
46
+ "team-management",
47
+ "videos",
48
+ "web",
49
+ "workspace-fs-write"
50
+ ],
51
+ "outputMedium": "artifact",
52
+ "additionalOutputMedia": [
53
+ "task-note"
54
+ ]
55
+ },
56
+ "advanceWhen": {
57
+ "file": "{{workPath}}/fit-map.md",
58
+ "minBytes": 1,
59
+ "sniff": "nonempty",
60
+ "artifact": true
61
+ },
62
+ "gate": {
63
+ "at": "completion",
64
+ "checks": [
65
+ {
66
+ "kind": "minBytes",
67
+ "file": "{{workPath}}/fit-map.md",
68
+ "bytes": 120,
69
+ "artifact": true
70
+ },
71
+ {
72
+ "kind": "sniff",
73
+ "file": "{{workPath}}/fit-map.md",
74
+ "sniff": "nonempty",
75
+ "artifact": true
76
+ },
77
+ {
78
+ "kind": "contains",
79
+ "file": "{{workPath}}/fit-map.md",
80
+ "pattern": "^#+\\s.*gap",
81
+ "flags": "im",
82
+ "label": "has an explicit Gaps section",
83
+ "artifact": true
84
+ }
85
+ ],
86
+ "onReject": "fit-map",
87
+ "maxAttempts": 3
88
+ },
89
+ "next": "tailor"
90
+ },
91
+ {
92
+ "id": "tailor",
93
+ "name": "Tailor the résumé",
94
+ "description": "the tailored variant — re-ordered, re-worded, nothing invented",
95
+ "prompt": "Produce the tailored variant as resume-tailored.md, working strictly from the base résumé and the fit map. Step 1: rewrite the professional summary to target this posting, weaving must-hit keywords naturally. Step 2: re-order experience bullets so the most relevant impact leads each role; re-word partial matches to surface the evidence the posting asks for — same facts, sharper framing. Step 3: cut or compress roles and bullets irrelevant to this posting rather than exceeding the base résumé's page count. Step 4: NEVER invent experience, titles, dates, or metrics — a gap identified in the fit map stays a gap. Step 5: keep the base résumé's format conventions (headings, date style) so the variant is drop-in. On a loop-back, fix ONLY the named issues. Write a short note confirming keyword coverage and page parity via write_task_note.",
96
+ "suggestedRole": "copywriter",
97
+ "toolPolicy": {
98
+ "disallowBuiltinToolsets": [
99
+ "ai-apps",
100
+ "archives",
101
+ "artifacts",
102
+ "audio",
103
+ "browser-automation",
104
+ "code-execution",
105
+ "craftbooks",
106
+ "data-tables",
107
+ "entity-intel",
108
+ "git",
109
+ "image-intel",
110
+ "images",
111
+ "role-delegation",
112
+ "role-delegation-escalation",
113
+ "security-intel",
114
+ "team-management",
115
+ "videos",
116
+ "web"
117
+ ],
118
+ "outputMedium": "workspace",
119
+ "additionalOutputMedia": [
120
+ "task-note"
121
+ ]
122
+ },
123
+ "advanceWhen": {
124
+ "file": "resume-tailored.md",
125
+ "minBytes": 1,
126
+ "sniff": "nonempty"
127
+ },
128
+ "gate": {
129
+ "at": "completion",
130
+ "checks": [
131
+ {
132
+ "kind": "minBytes",
133
+ "file": "resume-tailored.md",
134
+ "bytes": 500
135
+ }
136
+ ],
137
+ "scripts": [
138
+ {
139
+ "name": "checkContains",
140
+ "scope": "standard",
141
+ "inputs": {
142
+ "file": "resume-tailored.md",
143
+ "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
144
+ "flags": "i"
145
+ }
146
+ }
147
+ ],
148
+ "onReject": "tailor",
149
+ "maxAttempts": 4
150
+ },
151
+ "next": "evaluate"
152
+ },
153
+ {
154
+ "id": "evaluate",
155
+ "name": "Evaluate",
156
+ "description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
157
+ "prompt": "QA the tailored résumé against the base and the fit map. Step 1: diff-read resume-tailored.md against the base résumé — FAIL immediately on any claim, title, date, or metric that the base does not support. Step 2: check keyword coverage — every strong/partial must-hit from the fit map appears naturally in the variant. Step 3: confirm the page count did not grow and the summary targets the posting's role. Step 4: confirm the Gaps section items were NOT smuggled into the résumé. Write PASS/FAIL per criterion with the specific line for any FAIL.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"tailor\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
158
+ "suggestedRole": "reviewer",
159
+ "toolPolicy": {
160
+ "disallowBuiltinToolsets": [
161
+ "ai-apps",
162
+ "archives",
163
+ "artifacts",
164
+ "audio",
165
+ "browser-automation",
166
+ "code-execution",
167
+ "craftbooks",
168
+ "data-tables",
169
+ "entity-intel",
170
+ "git",
171
+ "image-intel",
172
+ "images",
173
+ "role-delegation",
174
+ "role-delegation-escalation",
175
+ "security-intel",
176
+ "team-management",
177
+ "videos",
178
+ "web",
179
+ "workspace-fs-write"
180
+ ],
181
+ "outputMedium": "task-note"
182
+ },
183
+ "consumes": [
184
+ {
185
+ "file": "resume-tailored.md"
186
+ }
187
+ ],
188
+ "next": "tailor"
189
+ },
190
+ {
191
+ "id": "finish",
192
+ "name": "Finish",
193
+ "description": "All acceptance criteria met. Stamp a short summary and report DONE.",
194
+ "prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
195
+ "suggestedRole": "developer",
196
+ "toolPolicy": {
197
+ "disallowBuiltinToolsets": [
198
+ "ai-apps",
199
+ "archives",
200
+ "artifacts",
201
+ "audio",
202
+ "browser-automation",
203
+ "code-execution",
204
+ "craftbooks",
205
+ "data-tables",
206
+ "entity-intel",
207
+ "git",
208
+ "image-intel",
209
+ "images",
210
+ "role-delegation",
211
+ "role-delegation-escalation",
212
+ "security-intel",
213
+ "team-management",
214
+ "videos",
215
+ "web",
216
+ "workspace-fs-write"
217
+ ],
218
+ "outputMedium": "task-note"
219
+ },
220
+ "terminal": true
221
+ }
222
+ ],
223
+ "version": "1.0.5",
224
+ "releasedAt": "2026-10-06T00:00:00Z",
225
+ "minGezelVersion": "1.26233"
226
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "mode": "workflow",
4
+ "title": "Tailor Résumé to a Posting workflow processability",
5
+ "objective": "Prove that a medium local model can parse and execute the Tailor Résumé to a Posting craftbook, satisfy its declared runtime gates, and reach a terminal step using only local fixtures.",
6
+ "tags": [
7
+ "html-page"
8
+ ],
9
+ "prompt": "Use the `tailor-resume` (Tailor Résumé to a Posting) craftbook for this self-contained local evaluation. Open `source/craftbook-eval-brief.md` first, then follow the craftbook's actual steps and gates through its terminal step. Complete this request: Adapt an EXISTING résumé to a specific job posting — a fit map of must-hit requirements first, then a tailored variant that re-orders and re-words real experience without inventing any. Distinct from building a résumé from scratch (see Résumé / CV): this book starts from a base résumé plus a posting and produces the targeted variant along with honest gap notes for the cover letter and interview. Use per serious application in a job search.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Map the fit (planner) — must-hit requirements classified strong / partial / gap against the base résumé → gated on artifact `{{workPath}}/fit-map.md` (markdown-notes)\n2. Tailor the résumé (copywriter) — the tailored variant — re-ordered, re-worded, nothing invented → gated on `resume-tailored.md` (markdown-doc)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n Produce `fit-map.md` in this task's artifact working folder, `resume-tailored.md`. Use only seeded project files and installed local simulators. Do not call a real external service, fetch live data, or claim an external side effect occurred; an explicit dry-run record is the correct result when a dependency is unavailable.",
10
+ "setup": {
11
+ "projectName": "Tailor Résumé to a Posting Workflow Eval",
12
+ "about": "A hermetic workflow evaluation for the Tailor Résumé to a Posting craftbook. No live dependency or external network is authorized.",
13
+ "missionObjectives": "Run the Tailor Résumé to a Posting craftbook end to end, use the local evaluation brief and fixtures as truth, produce its declared outputs, and reach a terminal step without fabricating external effects.",
14
+ "managedWorkspaceWritePolicy": "allow",
15
+ "files": [
16
+ {
17
+ "path": "source/craftbook-eval-brief.md",
18
+ "content": "# Tailor Résumé to a Posting — local evaluation brief\n\nThis is a hermetic processability evaluation of the `tailor-resume` craftbook.\nDo not contact real services, use real credentials, or fetch live data. Treat\nthe project fixtures and installed local simulators as authoritative. If a\ndependency is intentionally unavailable, document an honest dry run instead\nof claiming a real side effect.\n\n## Request\n\nAdapt an EXISTING résumé to a specific job posting — a fit map of must-hit requirements first, then a tailored variant that re-orders and re-words real experience without inventing any. Distinct from building a résumé from scratch (see Résumé / CV): this book starts from a base résumé plus a posting and produces the targeted variant along with honest gap notes for the cover letter and interview. Use per serious application in a job search.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Map the fit (planner) — must-hit requirements classified strong / partial / gap against the base résumé → gated on artifact `{{workPath}}/fit-map.md` (markdown-notes)\n2. Tailor the résumé (copywriter) — the tailored variant — re-ordered, re-worded, nothing invented → gated on `resume-tailored.md` (markdown-doc)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n\n\n## Required workflow\n\n1. Map the fit\n2. Tailor the résumé\n3. Evaluate\n4. Finish (terminal)\n\n## Declared outputs\n\n- `fit-map.md` in this task's artifact working folder\n- `resume-tailored.md`\n"
19
+ },
20
+ {
21
+ "path": "source/brief.md",
22
+ "content": "# Tailor Résumé to a Posting Eval Brief\n\nClient: Boreal Desk, a home-office accessories company.\nAudience: operations leads who need an artifact they can use this week.\n\nFixed source facts for grounding:\n- The returns desk pilot covered 18 SKUs.\n- Median first response improved from 18 hours to 6 hours.\n- Preventable refund leakage fell from 14.2% to 8.9%.\n- The top unresolved complaint is status silence after photo submission.\n- Required next actions are automated status emails, barcode-exception training, and a weekly Finance exception export.\n\nUse these facts when the task asks for prose, analysis, copy, UI content, or test data. Do not use live web services, real credentials, or current outside data.\n\nCraftbook under test: tailor-resume - Tailor Résumé to a Posting.\n"
23
+ },
24
+ {
25
+ "path": "source/page-content.md",
26
+ "content": "# Boreal Desk Support Board\n\nBuild content around a support operations board. Required labels: Open issues, Status silence, Response time, Refund leakage, Next action. Required metric text: 18 hours to 6 hours and 14.2% to 8.9%.\n"
27
+ }
28
+ ],
29
+ "worker": {
30
+ "name": "Craftbook Runner",
31
+ "role": "Workflow Operator",
32
+ "about": "Execute the assigned craftbook exactly. Read local fixtures, satisfy each runtime gate, record honest dry-run evidence for unavailable dependencies, and continue until a terminal step is active or the task is complete."
33
+ }
34
+ },
35
+ "mocks": [],
36
+ "success": {
37
+ "summary": "The attributed tailor-resume task satisfied its own gates, produced its declared outputs, and reached a terminal step without using external services.",
38
+ "deliverables": [
39
+ {
40
+ "path": "{{task.dir}}/fit-map.md",
41
+ "kind": "markdown-report",
42
+ "artifact": true,
43
+ "minBytes": 120
44
+ },
45
+ {
46
+ "path": "resume-tailored.md",
47
+ "kind": "markdown-report",
48
+ "minBytes": 500
49
+ }
50
+ ],
51
+ "taskGraph": {
52
+ "requireCraftbookTask": true,
53
+ "requireTerminalStep": true
54
+ }
55
+ },
56
+ "rubric": {
57
+ "artifact": {
58
+ "path": "{{task.dir}}/fit-map.md",
59
+ "kind": "markdown"
60
+ },
61
+ "axes": [
62
+ {
63
+ "name": "workflow fidelity",
64
+ "description": "The result reflects the named craftbook sequence and its declared acceptance gates rather than a freehand substitute."
65
+ },
66
+ {
67
+ "name": "usefulness",
68
+ "description": "The deliverable is coherent, actionable, and suitable for the craftbook purpose stated in the local brief."
69
+ }
70
+ ],
71
+ "contextNote": "Advisory only. Deterministic pass/fail comes from the craftbook runtime gates, deliverable existence, attribution, and terminal progress."
72
+ },
73
+ "qualityFocus": [
74
+ "real tailor-resume craftbook task attribution",
75
+ "declared runtime gate satisfaction",
76
+ "terminal workflow progress",
77
+ "offline fixture and simulator discipline"
78
+ ]
79
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "id": "caselaw-alaska-part-0001",
4
+ "name": "Alaska caselaw — CAP jurisdiction collection — 1887–2019 (part-0001)",
5
+ "description": "10749 historical CAP case records, selected by CAP's jurisdiction label. Part of Alaska caselaw — CAP jurisdiction collection; see the collection index for complete coverage. Preserves CAP's Alaska jurisdiction assignment, including 21 U.S. District Court for the District of Alaska records printed in Federal Supplement, Third Series. Court names remain explicit; this is not exclusively state-court material. OCR may contain errors; inclusion does not establish current legal authority.",
6
+ "tags": [
7
+ "law",
8
+ "caselaw",
9
+ "alaska",
10
+ "historical"
11
+ ],
12
+ "maintainer": {
13
+ "name": "Bendyline",
14
+ "url": "https://github.com/bendyline/knowledge"
15
+ },
16
+ "license": "CC0 1.0 Universal",
17
+ "licenseClass": "open",
18
+ "yankedVersions": [],
19
+ "kind": "knowledge-catalog",
20
+ "publisherId": "bendyline",
21
+ "language": "en",
22
+ "category": "reference",
23
+ "upstream": "https://static.case.law/"
24
+ }