@uzysjung/agent-harness 26.150.0 → 26.151.0
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.ko.md +1 -1
- package/README.md +1 -1
- package/dist/{chunk-NKBUDHPC.js → chunk-3QBHZUVB.js} +99 -50
- package/dist/chunk-3QBHZUVB.js.map +1 -0
- package/dist/index.js +389 -274
- package/dist/index.js.map +1 -1
- package/dist/trust-tier-drift.js +1 -1
- package/package.json +1 -1
- package/templates/CLAUDE.md +145 -164
- package/templates/agents/build-error-resolver.md +1 -1
- package/templates/agents/plan-checker.md +1 -1
- package/templates/agents/reviewer.md +4 -5
- package/templates/antigravity/AGENTS.md.template +3 -23
- package/templates/codex/AGENTS.md.template +5 -56
- package/templates/hooks/protect-files.sh +4 -0
- package/templates/opencode/AGENTS.md.template +4 -52
- package/templates/opencode/opencode.json.template +0 -8
- package/templates/rules/change-management.md +0 -1
- package/templates/rules/cli-development.md +1 -1
- package/templates/rules/doc-governance.md +2 -0
- package/templates/rules/git-policy.md +1 -1
- package/templates/rules/ship-checklist.md +3 -3
- package/templates/rules/test-policy.md +3 -8
- package/templates/settings.json +1 -16
- package/templates/skills/agent-introspection-debugging/SKILL.md +1 -1
- package/templates/skills/audit-harness-fit/README.md +113 -0
- package/templates/skills/audit-harness-fit/SKILL.md +64 -433
- package/templates/skills/audit-harness-fit/evals/scenarios.yaml +222 -0
- package/templates/skills/audit-harness-fit/references/apply.md +66 -0
- package/templates/skills/audit-harness-fit/references/audit.md +160 -0
- package/templates/skills/audit-harness-fit/references/populate.md +74 -0
- package/templates/skills/audit-harness-fit/references/verification.md +123 -0
- package/templates/skills/compaction-handoff/SKILL.md +2 -2
- package/templates/skills/model-orchestration/SKILL.md +7 -0
- package/templates/skills/natural-korean/SKILL.md +45 -0
- package/templates/skills/north-star/references/roadmap-method.md +2 -2
- package/templates/skills/{task-brief → objective-brief}/SKILL.md +17 -16
- package/templates/skills/recurrence-prevention/SKILL.md +16 -16
- package/dist/chunk-NKBUDHPC.js.map +0 -1
- package/templates/agents/code-reviewer.md +0 -237
- package/templates/agents/security-reviewer.md +0 -108
- package/templates/hooks/task-brief-nudge.sh +0 -57
- package/templates/skills/audit-harness-fit/references/official-criteria.md +0 -367
- package/templates/skills/continuous-learning-v2/SKILL.md +0 -361
- package/templates/skills/continuous-learning-v2/agents/observer-loop.sh +0 -362
- package/templates/skills/continuous-learning-v2/agents/observer.md +0 -189
- package/templates/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/templates/skills/continuous-learning-v2/agents/start-observer.sh +0 -252
- package/templates/skills/continuous-learning-v2/config.json +0 -8
- package/templates/skills/continuous-learning-v2/hooks/observe.sh +0 -585
- package/templates/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
- package/templates/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
- package/templates/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
- package/templates/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
- package/templates/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1420
- package/templates/skills/humanize-korean/SKILL.md +0 -228
- package/templates/skills/spec-scaling/SKILL.md +0 -89
- package/templates/skills/strategic-compact/SKILL.md +0 -145
- package/templates/skills/strategic-compact/suggest-compact.sh +0 -54
package/README.ko.md
CHANGED
|
@@ -63,7 +63,7 @@ npx -y @uzysjung/agent-harness uninstall # 무엇을 뺄지 고른다
|
|
|
63
63
|
|
|
64
64
|
## 무엇을 얻는가
|
|
65
65
|
|
|
66
|
-
- **스택 기반 큐레이션.** 검증된 옵션 중에서 이 프로젝트에 실제로 필요한 자산만 골라 설치한다. `csr-supabase` 를 고르면 세 묶음이 미리 체크된다 — 모든 track 이 받는 4종(`north-star`·`
|
|
66
|
+
- **스택 기반 큐레이션.** 검증된 옵션 중에서 이 프로젝트에 실제로 필요한 자산만 골라 설치한다. `csr-supabase` 를 고르면 세 묶음이 미리 체크된다 — 모든 track 이 받는 4종(`north-star`·`objective-brief`·`gh-issue-workflow`·`audit-harness-fit`), 개발 track 이 받는 것들(`find-skills`·`agent-browser`·`frontend-design` + 방법론 스킬 6종), 그리고 이 스택이 필요로 하는 React·shadcn·Supabase·Postgres. 카탈로그의 나머지는 처음부터 끼어들지 않는다.
|
|
67
67
|
|
|
68
68
|
- **규율 레이어.** 실제 프로덕션 프로젝트를 에이전트로 운영하며 추출한 룰·훅·방법론 스킬·CI 스캐폴드로 구성된다. 문서 거버넌스와 검증 게이트, 작업 브리프 정규화, 재발 방지 체계를 아우르며, 특히 스킬 14종은 마켓플레이스에 의존하지 않고 이 저장소에서 직접 쓰고 관리한다. 그중 12종은 id 로 지정할 수 있고(`--with`/`--without`), 그 12종 가운데 6종은 3단계 화면에서 한 줄로 묶여 함께 켜지고 꺼진다. 이 레이어 덕분에 단순한 skill 모음을 넘어선 하네스로 작동한다.
|
|
69
69
|
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ This tool starts from the stack instead. You pick a track, and it pre-checks the
|
|
|
59
59
|
|
|
60
60
|
## What you get
|
|
61
61
|
|
|
62
|
-
- **Curation by tech stack.** Of the vetted options, you install only what this project calls for. Pick `csr-supabase` and step 3 pre-checks three groups: the four that every track gets (`north-star`, `
|
|
62
|
+
- **Curation by tech stack.** Of the vetted options, you install only what this project calls for. Pick `csr-supabase` and step 3 pre-checks three groups: the four that every track gets (`north-star`, `objective-brief`, `gh-issue-workflow`, `audit-harness-fit`), the dev-track set (`find-skills`, `agent-browser`, `frontend-design`, and the six method skills), and the ones this stack calls for — React, shadcn, Supabase, Postgres. Not the rest of the catalog.
|
|
63
63
|
|
|
64
64
|
- **A discipline layer.** Rules, hooks, method skills, and CI scaffolds distilled from running real production projects with agents: doc governance, verification gates, normalized task briefs, recurrence prevention. Fourteen of those skills are written and maintained in this repo rather than pulled from a marketplace — twelve of them selectable by id with `--with` / `--without`, six of which collapse into one row at step 3 — so the harness ships the method, not just a pointer to one. This layer is what makes it a harness rather than a skill pack.
|
|
65
65
|
|
|
@@ -240,7 +240,7 @@ var EXTERNAL_ASSETS = [
|
|
|
240
240
|
id: "model-orchestration",
|
|
241
241
|
tier: "official",
|
|
242
242
|
// uzys 자사 스킬 리포
|
|
243
|
-
description: "Model orchestration \u2014 decompose work by capability and route independent, bounded tasks to available agents while preserving ownership, permissions, and verification (opt-in \u2014 recommended)",
|
|
243
|
+
description: "Model orchestration \u2014 decompose work by capability and route independent, bounded tasks to available agents while preserving ownership, permissions, and verification. Model names are Claude Code vocabulary; on other CLIs the same split maps onto that vendor's tiers (opt-in \u2014 recommended)",
|
|
244
244
|
category: "workflow",
|
|
245
245
|
source: "uzys",
|
|
246
246
|
condition: { kind: "opt-in" },
|
|
@@ -261,27 +261,31 @@ var EXTERNAL_ASSETS = [
|
|
|
261
261
|
{
|
|
262
262
|
// 복원 9종이 아니라 신설이다 — 이관 이력이 없다.
|
|
263
263
|
// 전 트랙인 이유: 위임과 요청 정규화는 개발 트랙의 행위가 아니라 **전 트랙의 행위**다.
|
|
264
|
-
// executive 트랙도 서브에이전트에 일을 넘기고, 그때 브리프가 없으면 완료 판정 기준 없이
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
|
|
264
|
+
// executive 트랙도 서브에이전트에 일을 넘기고, 그때 브리프가 없으면 완료 판정 기준 없이 넘긴다.
|
|
265
|
+
// ADR-088 (#426 F-04) — 전신 `task-brief` 개명. 문턱이 **위임 · 설계 · 다단계(피처/프로젝트
|
|
266
|
+
// 규모 이상)** 로 좁혀졌고, 한 줄 요청마다 브리프를 권하던 매 프롬프트 넛지 훅과 상시 스킬
|
|
267
|
+
// 안내(`CONTINUOUS_SKILLS`)가 함께 빠졌다. 이름이 그 문턱을 들고 있다.
|
|
268
|
+
id: "objective-brief",
|
|
268
269
|
tier: "official",
|
|
269
270
|
// uzys 자사 스킬
|
|
270
|
-
description: "
|
|
271
|
+
description: "Objective brief \u2014 normalize a delegation, a design task, or multi-step work at feature scale into the canonical brief (objective \xB7 inputs \xB7 invariants \xB7 success criteria \xB7 boundaries \xB7 autonomy \xB7 verification) and write every delegation prompt in that same shape",
|
|
271
272
|
category: "workflow",
|
|
272
273
|
source: "uzys",
|
|
273
274
|
condition: { kind: "any-track", tracks: [...TRACKS] },
|
|
274
|
-
method: { kind: "internal", key: "
|
|
275
|
+
method: { kind: "internal", key: "objective-brief" }
|
|
275
276
|
},
|
|
276
277
|
{
|
|
277
|
-
//
|
|
278
|
+
// objective-brief 와 같은 신설이다 — 이관 이력이 없다.
|
|
278
279
|
// 전 트랙인 이유: 이 하네스는 **모든 트랙에** 앵커·룰·훅을 깐다. 그 상주층이 밥값을 하는지
|
|
279
280
|
// 되묻는 루프만 개발 트랙에 두면, 상주 비용은 전원이 무는데 감사는 일부만 갖는 비대칭이
|
|
280
281
|
// 된다. 감사 대상이 개발 산출물이 아니라 **설치본 자신**이라 트랙 술어와 무관하다.
|
|
282
|
+
// ADR-084 (#425) — 2판. 판정 근거가 공식 체크리스트 인용에서 **확정된 의도 + 리포 실증**으로
|
|
283
|
+
// 바뀌었고, 모드 4개(audit · verification · apply · populate)를 SKILL.md 가 references 로
|
|
284
|
+
// 라우팅한다. 비-Claude CLI 도 디렉터리째 받는 것이 전제다(#431).
|
|
281
285
|
id: "audit-harness-fit",
|
|
282
286
|
tier: "official",
|
|
283
287
|
// uzys 자사 스킬
|
|
284
|
-
description: "Audit harness fit \u2014 audit
|
|
288
|
+
description: "Audit harness fit \u2014 audit or clean up agent instructions and skills: remove needless questions and rechecks, reconcile conflicting or changed guidance, retire low-value rules and skills, move decision history out of resident text, right-size user-journey verification; also fill or refresh AGENTS.md / CLAUDE.md project context from repository evidence",
|
|
285
289
|
category: "workflow",
|
|
286
290
|
source: "uzys",
|
|
287
291
|
condition: { kind: "any-track", tracks: [...TRACKS] },
|
|
@@ -307,15 +311,18 @@ var EXTERNAL_ASSETS = [
|
|
|
307
311
|
// 트랙과 무관한 글쓰기 규율이라 어느 트랙에서도 고를 수 있고, 어느 트랙에도 자동으로는
|
|
308
312
|
// 안 깔린다(opt-in). 한국어로 쓰지 않는 사용자에게 기본 설치되면 그대로 낭비다.
|
|
309
313
|
// clear-korean-communication 과의 경계: 저쪽은 **무엇을 어떤 형식으로 말할지**(설명·승인
|
|
310
|
-
// 요청의 구조)이고, 이쪽은
|
|
311
|
-
|
|
314
|
+
// 요청의 구조)이고, 이쪽은 **한국어로 쓰는 행위 자체**(답변·글쓰기·번역·퇴고)의 표현이다.
|
|
315
|
+
// #428 — 전신 `humanize-korean`(#355, 진단-우선 퇴고)을 개명·교체했다. 범위가 퇴고에서
|
|
316
|
+
// 쓰기·번역까지로 넓어져 이름이 뜻과 어긋났다. 옛 id 로 깐 설치본은 `update` 가 손대지
|
|
317
|
+
// 않고(설치된 디렉터리만 갱신) 그대로 남는다 — 새 판은 `--with natural-korean` 으로 받는다.
|
|
318
|
+
id: "natural-korean",
|
|
312
319
|
tier: "official",
|
|
313
320
|
// uzys 자사 스킬
|
|
314
|
-
description: "
|
|
321
|
+
description: "Natural Korean \u2014 write, answer, translate, and revise in Korean that reads as Korean: keep meaning and register, cut translationese, needless English, stock phrases, and mechanical repetition; fix only what is actually awkward (opt-in)",
|
|
315
322
|
category: "workflow",
|
|
316
323
|
source: "uzys",
|
|
317
324
|
condition: { kind: "opt-in" },
|
|
318
|
-
method: { kind: "internal", key: "
|
|
325
|
+
method: { kind: "internal", key: "natural-korean" }
|
|
319
326
|
},
|
|
320
327
|
// === Option-gated (v26.42.0 — opt-in, BREAKING vs prior has-dev-track auto-install) ===
|
|
321
328
|
{
|
|
@@ -351,8 +358,8 @@ var EXTERNAL_ASSETS = [
|
|
|
351
358
|
}
|
|
352
359
|
},
|
|
353
360
|
// v26.110.0 (ADR-039, 오피셜 플러그인 큐레이션) — feature-dev: 탐색→설계→구현 워크플로우 +
|
|
354
|
-
// 전용 에이전트 3종(
|
|
355
|
-
// "
|
|
361
|
+
// 전용 에이전트 3종(탐색·설계·리뷰). 방법론류 — ADR-032 "워크플로우 강제 구조는 기본
|
|
362
|
+
// 불필요" + 그 리뷰 에이전트가 Claude Code 기본 `/code-review` 와 중복(ADR-089)
|
|
356
363
|
// → superpowers 와 동급 opt-in.
|
|
357
364
|
{
|
|
358
365
|
id: "feature-dev",
|
|
@@ -554,8 +561,8 @@ var EXTERNAL_ASSETS = [
|
|
|
554
561
|
},
|
|
555
562
|
// === dev tools (has_dev_track) ===
|
|
556
563
|
// v26.110.0 (ADR-039) — code-review: /code-review 커맨드 1개 (다중 에이전트 confidence
|
|
557
|
-
// 스코어링 PR 리뷰). 기본 리뷰
|
|
558
|
-
//
|
|
564
|
+
// 스코어링 PR 리뷰). 기본 리뷰 레인(`reviewer`)과 표면 중복 + Claude Code 네이티브
|
|
565
|
+
// /code-review 와 충돌 소지 → opt-in. (ADR-089 로 우리 리뷰 에이전트 2종은 은퇴했다.)
|
|
559
566
|
{
|
|
560
567
|
id: "code-review",
|
|
561
568
|
tier: "official",
|
|
@@ -572,7 +579,7 @@ var EXTERNAL_ASSETS = [
|
|
|
572
579
|
},
|
|
573
580
|
// v26.110.0 (ADR-039) — security-guidance: 매 편집 패턴 경고 + LLM diff 리뷰 (훅 12파일,
|
|
574
581
|
// Python + Agent SDK 의존). 상시 훅 = 매 편집 비용 + 폭발 반경 — 실측 전 기본설치 금지
|
|
575
|
-
// (Context Cost NSM) → opt-in. security-
|
|
582
|
+
// (Context Cost NSM) → opt-in. Claude Code `/security-review`·agentshield ship 게이트와 보완.
|
|
576
583
|
{
|
|
577
584
|
id: "security-guidance",
|
|
578
585
|
tier: "official",
|
|
@@ -1026,12 +1033,31 @@ var INTERNAL_BUNDLED_SKILL_IDS = [
|
|
|
1026
1033
|
...DEV_METHOD_SKILL_IDS,
|
|
1027
1034
|
"north-star",
|
|
1028
1035
|
"gh-issue-workflow",
|
|
1029
|
-
"
|
|
1036
|
+
"objective-brief",
|
|
1030
1037
|
"audit-harness-fit",
|
|
1031
1038
|
"model-orchestration",
|
|
1032
1039
|
"external-model-consult",
|
|
1033
1040
|
"self-hosted-github-runner",
|
|
1034
|
-
"
|
|
1041
|
+
"natural-korean"
|
|
1042
|
+
];
|
|
1043
|
+
var CONTINUOUS_SKILLS = [
|
|
1044
|
+
{
|
|
1045
|
+
id: "clear-korean-communication",
|
|
1046
|
+
whenToApply: "applies to every answer, report, and approval request \u2014 a decision is presented as AS-IS \u2192 TO-BE from the position of whoever lives with the result; not only at the moment approval is asked for"
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
id: "model-orchestration",
|
|
1050
|
+
whenToApply: "when work is delegated, it decides which lane takes the work and how that lane is run"
|
|
1051
|
+
}
|
|
1052
|
+
];
|
|
1053
|
+
var RENAMED_SKILL_IDS = {
|
|
1054
|
+
"task-brief": "objective-brief",
|
|
1055
|
+
"humanize-korean": "natural-korean"
|
|
1056
|
+
};
|
|
1057
|
+
var RETIRED_SKILL_IDS = [
|
|
1058
|
+
"strategic-compact",
|
|
1059
|
+
"continuous-learning-v2",
|
|
1060
|
+
"spec-scaling"
|
|
1035
1061
|
];
|
|
1036
1062
|
var TRUST_TIER = Object.fromEntries(
|
|
1037
1063
|
EXTERNAL_ASSETS.map((a) => [a.id, a.tier])
|
|
@@ -1415,9 +1441,34 @@ var HARNESS_ANCHOR_FILE = "CLAUDE-uzys-harness.md";
|
|
|
1415
1441
|
var HARNESS_IMPORT_LINE = `@${HARNESS_ANCHOR_FILE}`;
|
|
1416
1442
|
var IMPORT_MARKER_START = "<!-- uzys-harness:import:start -->";
|
|
1417
1443
|
var IMPORT_MARKER_END = "<!-- uzys-harness:import:end -->";
|
|
1418
|
-
|
|
1419
|
-
|
|
1444
|
+
function renderContinuousSkillsNote(selectedInternalSkills) {
|
|
1445
|
+
const lines = CONTINUOUS_SKILLS.filter((s) => selectedInternalSkills.includes(s.id)).map(
|
|
1446
|
+
(s) => `- \`${s.id}\` \u2014 ${s.whenToApply}.`
|
|
1447
|
+
);
|
|
1448
|
+
if (lines.length === 0) return "";
|
|
1449
|
+
return [
|
|
1450
|
+
"## Skills that apply continuously",
|
|
1451
|
+
"",
|
|
1452
|
+
"These installed skills apply to every response or delegation; no prompt ever looks like their job, so open them from this list:",
|
|
1453
|
+
"",
|
|
1454
|
+
...lines
|
|
1455
|
+
].join("\n");
|
|
1456
|
+
}
|
|
1457
|
+
function withContinuousSkillsNote(scaffold, selectedInternalSkills) {
|
|
1458
|
+
const note = renderContinuousSkillsNote(selectedInternalSkills);
|
|
1459
|
+
return note ? `${scaffold}
|
|
1460
|
+
|
|
1461
|
+
${note}` : scaffold;
|
|
1462
|
+
}
|
|
1463
|
+
function importBlock(continuousSkills) {
|
|
1464
|
+
const note = renderContinuousSkillsNote(continuousSkills);
|
|
1465
|
+
const body = note ? `${HARNESS_IMPORT_LINE}
|
|
1466
|
+
|
|
1467
|
+
${note}` : HARNESS_IMPORT_LINE;
|
|
1468
|
+
return `${IMPORT_MARKER_START}
|
|
1469
|
+
${body}
|
|
1420
1470
|
${IMPORT_MARKER_END}`;
|
|
1471
|
+
}
|
|
1421
1472
|
var TRACK_DISPLAY_NAMES = {
|
|
1422
1473
|
tooling: "Tooling",
|
|
1423
1474
|
"csr-supabase": "CSR Supabase",
|
|
@@ -1511,18 +1562,27 @@ ${renderFillScaffold()}
|
|
|
1511
1562
|
`;
|
|
1512
1563
|
}
|
|
1513
1564
|
function upsertHarnessImport(existing, opts) {
|
|
1565
|
+
const block = importBlock(opts.continuousSkills ?? []);
|
|
1514
1566
|
if (existing === null) {
|
|
1515
1567
|
return `${mergeProjectClaude(opts)}
|
|
1516
|
-
${
|
|
1568
|
+
${block}
|
|
1517
1569
|
`;
|
|
1518
1570
|
}
|
|
1571
|
+
const start = existing.indexOf(IMPORT_MARKER_START);
|
|
1572
|
+
if (start !== -1) {
|
|
1573
|
+
const endAt = existing.indexOf(IMPORT_MARKER_END, start);
|
|
1574
|
+
if (endAt === -1) return existing;
|
|
1575
|
+
const current = existing.slice(start, endAt + IMPORT_MARKER_END.length);
|
|
1576
|
+
if (current === block) return existing;
|
|
1577
|
+
return `${existing.slice(0, start)}${block}${existing.slice(endAt + IMPORT_MARKER_END.length)}`;
|
|
1578
|
+
}
|
|
1519
1579
|
if (hasHarnessImport(existing)) {
|
|
1520
1580
|
return existing;
|
|
1521
1581
|
}
|
|
1522
1582
|
const body = existing.endsWith("\n") ? existing : `${existing}
|
|
1523
1583
|
`;
|
|
1524
1584
|
return `${body}
|
|
1525
|
-
${
|
|
1585
|
+
${block}
|
|
1526
1586
|
`;
|
|
1527
1587
|
}
|
|
1528
1588
|
function stripHarnessImport(text) {
|
|
@@ -1607,19 +1667,12 @@ function resolveRules(spec) {
|
|
|
1607
1667
|
}
|
|
1608
1668
|
var ALL_RULES = resolveRules({ tracks: [...TRACKS] });
|
|
1609
1669
|
var CORE_AGENTS = ["reviewer", "data-analyst", "strategist"];
|
|
1610
|
-
var CORE_AGENTS_ECC = ["code-reviewer", "security-reviewer"];
|
|
1611
1670
|
var DEV_AGENTS = ["plan-checker", "implementer"];
|
|
1612
1671
|
var DEV_AGENTS_ECC = ["silent-failure-hunter", "build-error-resolver"];
|
|
1613
|
-
var
|
|
1614
|
-
|
|
1615
|
-
"protect-files.sh",
|
|
1616
|
-
// UserPromptSubmit 넛지. 차단하지 않는 유일한 훅 — 판정은 결정적 두 조건뿐이고(길이 ·
|
|
1617
|
-
// `<objective>` 표식 부재) 변환 자체는 `task-brief` 스킬 몫이다. `templates/settings.json`
|
|
1618
|
-
// 배선과 한 벌 (hook-wiring-parity 가 한쪽만 있는 상태를 문다).
|
|
1619
|
-
"task-brief-nudge.sh"
|
|
1620
|
-
];
|
|
1672
|
+
var RETIRED_AGENT_IDS = ["code-reviewer", "security-reviewer"];
|
|
1673
|
+
var ALWAYS_HOOKS = ["session-start.sh", "protect-files.sh"];
|
|
1621
1674
|
var COMMON_SKILL_DIRS = [];
|
|
1622
|
-
var COMMON_SKILL_DIRS_ECC = [
|
|
1675
|
+
var COMMON_SKILL_DIRS_ECC = [];
|
|
1623
1676
|
var MODIFIED_COMMON_SKILL_DIRS = ["deep-research"];
|
|
1624
1677
|
var DEV_SKILL_DIRS = [];
|
|
1625
1678
|
var DEV_SKILL_DIRS_ECC = ["agent-introspection-debugging"];
|
|
@@ -1681,14 +1734,6 @@ function buildManifest(spec) {
|
|
|
1681
1734
|
applies: dev
|
|
1682
1735
|
});
|
|
1683
1736
|
}
|
|
1684
|
-
for (const a of CORE_AGENTS_ECC) {
|
|
1685
|
-
m.push({
|
|
1686
|
-
source: `agents/${a}.md`,
|
|
1687
|
-
target: `.claude/agents/${a}.md`,
|
|
1688
|
-
type: "file",
|
|
1689
|
-
applies: (s) => !s.withEcc
|
|
1690
|
-
});
|
|
1691
|
-
}
|
|
1692
1737
|
for (const a of DEV_AGENTS_ECC) {
|
|
1693
1738
|
m.push({
|
|
1694
1739
|
source: `agents/${a}.md`,
|
|
@@ -1721,12 +1766,6 @@ function buildManifest(spec) {
|
|
|
1721
1766
|
applies: all
|
|
1722
1767
|
});
|
|
1723
1768
|
}
|
|
1724
|
-
m.push({
|
|
1725
|
-
source: "skills/spec-scaling",
|
|
1726
|
-
target: ".claude/skills/spec-scaling",
|
|
1727
|
-
type: "dir",
|
|
1728
|
-
applies: all
|
|
1729
|
-
});
|
|
1730
1769
|
for (const sd of ["market-research", "investor-materials", "investor-outreach"]) {
|
|
1731
1770
|
m.push({
|
|
1732
1771
|
source: `skills/${sd}`,
|
|
@@ -1932,7 +1971,12 @@ function residentCost(entries, root = resolveBundleRoot()) {
|
|
|
1932
1971
|
}
|
|
1933
1972
|
}
|
|
1934
1973
|
const harnessAnchor = fileTokens(join3(root, "templates", "CLAUDE.md"));
|
|
1935
|
-
const projectScaffold = estimateTokens(
|
|
1974
|
+
const projectScaffold = estimateTokens(
|
|
1975
|
+
withContinuousSkillsNote(
|
|
1976
|
+
renderFillScaffold(),
|
|
1977
|
+
CONTINUOUS_SKILLS.map((s) => s.id)
|
|
1978
|
+
).trim().length
|
|
1979
|
+
);
|
|
1936
1980
|
const projectClaudeMd = harnessAnchor + projectScaffold;
|
|
1937
1981
|
const claudeMdItems = (harnessAnchor > 0 ? 1 : 0) + (projectScaffold > 0 ? 1 : 0);
|
|
1938
1982
|
return makeResidentCost({
|
|
@@ -2044,6 +2088,9 @@ export {
|
|
|
2044
2088
|
EXTERNAL_ASSETS,
|
|
2045
2089
|
DEV_METHOD_SKILL_IDS,
|
|
2046
2090
|
INTERNAL_BUNDLED_SKILL_IDS,
|
|
2091
|
+
CONTINUOUS_SKILLS,
|
|
2092
|
+
RENAMED_SKILL_IDS,
|
|
2093
|
+
RETIRED_SKILL_IDS,
|
|
2047
2094
|
TRUST_TIER,
|
|
2048
2095
|
assetTrustTier,
|
|
2049
2096
|
isAssetSelected,
|
|
@@ -2074,12 +2121,14 @@ export {
|
|
|
2074
2121
|
legacyInstallLogPath,
|
|
2075
2122
|
HARNESS_ANCHOR_FILE,
|
|
2076
2123
|
HARNESS_IMPORT_LINE,
|
|
2124
|
+
withContinuousSkillsNote,
|
|
2077
2125
|
renderFillScaffold,
|
|
2078
2126
|
upsertHarnessImport,
|
|
2079
2127
|
stripHarnessImport,
|
|
2080
2128
|
buildAssetSpec,
|
|
2081
2129
|
resolveRules,
|
|
2082
2130
|
ALL_RULES,
|
|
2131
|
+
RETIRED_AGENT_IDS,
|
|
2083
2132
|
isCliNeutralTarget,
|
|
2084
2133
|
buildManifest,
|
|
2085
2134
|
CATEGORIES,
|
|
@@ -2092,4 +2141,4 @@ export {
|
|
|
2092
2141
|
formatResidentCostLine,
|
|
2093
2142
|
formatResidentCostBlock
|
|
2094
2143
|
};
|
|
2095
|
-
//# sourceMappingURL=chunk-
|
|
2144
|
+
//# sourceMappingURL=chunk-3QBHZUVB.js.map
|