Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/chrono-meta/forge-harness/preprepnpx skills add chrono-meta/forge-harness --skill preprepgit clone --depth 1 https://github.com/chrono-meta/forge-harnessWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/chrono-meta/forge-harness/preprep)<a href="https://agentmods.dev/skills/chrono-meta/forge-harness/preprep"><img src="https://agentmods.dev/badge/skills/chrono-meta/forge-harness/preprep.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00216 | $0.05930 |
| Opus 5 | $0.00108 | $0.02965 |
| Sonnet 5 | $0.00043 | $0.01186 |
| Haiku 4.5 | $0.00022 | $0.00593 |
Grade A, and why
preprep scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 215 lines — stays where its author put it; the contents beside it link to each section on GitHub.
preprep — 한국식 발표대본·장표 준비 하네스
특화가 한국식인 이유는 장식이 아니다. 낭독 대본의 존댓말 레지스터, 조어를 첫 등장에 풀어주는 관습, 어절 중간에서 끊기지 않는 줄바꿈, 영어 직역이 남긴 번역투 — 이것들은 한국어 발표에서만 하중을 지고, 영어권 디자인 렌즈가 구조적으로 못 잡는다.
🟥 왜 «별도 하네스»여야 하나 — 스킬 하나로는 안 되는 자리
운영자 정의(2026-08-29): 「발표자료를 짓고 대본도 동기화하고 관련된 기술문서도 싱크하여 출하할 수 있게 하는 능력이 하네스를 별도로 두어야 하는 이유의 정체다.」
기존 스킬은 전부 표면 하나를 본다 — deep-clarify 는 요구를, ko-tech-writer 는 산문 한 편을,
corpus-grounding-expander 는 코퍼스를. 🟥 셋이 같이 움직이는 것과 «출하 가능 상태»를
아무도 소유하지 않는다. 그 자리가 이 하네스다.
장표 ── 대본 ── 기술문서 셋은 «같은 것의 세 면»이지 세 문서가 아니다
└──────┴──────┘
동기화 + 출하 가능 상태 ← 여기를 소유하는 것이 이 하네스의 정체
그래서 레인 중 셋(L2 unit-ref · L7 regen · L8 interslide)이 표면 사이를 본다. 한 면만 보는 도구로는 구조적으로 못 잡는 자리이고, 실측이 그것을 세 번 보여줬다 — 재생성이 발표자 노트 20곳을 삼켰는데 빌드는 성공했고, S8 을 빼자 S9 가 성립 불가가 됐는데 렌더를 한 장씩 다 봐도 구조적으로 안 잡혔고 운영자가 잡았으며, 도해에 구워진 텍스트는 XML 을 읽는 눈에 구조적으로 안 보였다.
발표는 자산군이다. 덱 하나가 아니라 덱 + 원고 + 발표자 노트 + 기술문서 + Q&A prep + 초록 + 리허설 대본이고, 그것들이 서로 어긋나는 자리에서 사고가 난다. 한 장씩 봐서는 안 잡힌다 — 눈은 표면 하나를 보고 결함은 표면 사이에 있다.
🟥 이 하네스는 «검사기»가 아니다 — 레인은 마지막에 오는 바닥이다
운영자 정의(2026-08-29): 「위치 틀어짐, 일관성 없음, 번역투 등의 문제가 없고 구성을 잘 만들어내면 되겠지. 기승전결에 맞게끔 구성도 도와주고. 결국 많이 물어봐서 기초를 세우고 그것 기반으로 만들어서 퇴고를 하는 식일 거야. … 결국에는 취향이 중요하니까.」
그래서 무게중심은 만들기 전과 만드는 중에 있고, 레인 아홉은 산출물이 아니라 floor 다. 레인이 초록이라고 좋은 발표가 아니다. 레인이 빨가면 나갈 수 없을 뿐이다.
| 층 | 무엇 | 누가 정하나 |
|---|---|---|
| 기계가 알아서 | 번역투 · 위치 틀어짐 · 논지 안 맞음 · 내용 순서 | 🟥 묻지 않고 최적화한다. 여긴 사람 시간을 쓸 자리가 아니다 |
| 사람과 대화로 | 알맹이 — 아이콘 하나, 대본을 취향에 맞춰 고치기, 주제 · 구성 · 전개 · 디자인 | 🟥 절대 피할 수 없다. 자동으로 정하면 그게 틀린 것이다 |
운영자 정의(2026-08-29): 「사람의 손이 번역투나 위치 틀어짐, 논지 안 맞음, 내용 순서에 맞는지를 최적화 알아서 시켜주고, 그 안의 디테일한 알맹이들을 … 사람과의 소통으로 맞춰나가는 것. 이건 절대 피할 수 없지.」
🟥 두 층은 실패 방향이 반대다. 위는 «물어보면 마이너스»다 — 번역투를 고칠까 묻는 것 자체가 사람 시간을 쓰는 것이고 기계가 그냥 해야 한다. 아래는 «안 물으면 마이너스»다 — 아이콘 하나, 대본 한 줄의 말맛은 물어봐야만 맞는다. 어느 쪽을 반대로 하면 하네스가 방해물이 된다.
«알아서 커버» 가 지금 어디까지 되나 — 정직하게
운영자가 든 예시로 그대로 대조한다. 일일이 지적 안 해도 커버되어야 하는 것들이다.
| 운영자 예시 | 지금 | 무엇이 보나 |
|---|---|---|
| 위치가 어긋나 있다 | 🟢 덮인다 | ooxml/gate.py ⑥ 화면 밖 도형 ⚠️ 그 검사에 붙은 사고 수치(26p · 1,854,400 EMU)는 gate.py 자신의 인라인 주석 말고 대조할 기록이 없다 — 거짓이라는 뜻이 아니라 독립 출처가 없다는 뜻이다 |
| 번역투 | 🟢 덮인다 | ⑤에서 ko-tech-writer Step 2 |
| 주어가 빠져 있다 | 🔴 미구현 (판별자는 있다) | 🟥 «패턴만으로는 못 한다»고 적었던 것을 정정한다 — 판별자가 이미 실재한다: 주어 생략의 가부는 문장이 아니라 화면이 정한다. 그 문장이 뜨는 화면에 참조 대상이 있으면 생략이 맞고, 참조 대상이 사라지는 장에서 복원한다. 화면 텍스트는 이미 추출되므로 이건 judged 가 아니라 measured 후보다. 다만 복원/유지는 4등급으로 갈린다 (목적어=복원 · 주어+신정보=복원 · 주어+구정보=그대로 둔다 · SOV 재배열) — 전부 복원하면 번역투를 새로 만든다. 미구현 상태다 |
| 화면이 너무 비어 보인다 | 🔴 미구축 | gate.py 는 «밖으로 나갔나»를 보지 «안이 비었나»를 안 본다. 🟥 정정 2026-09-01 — 「pptx→PDF 가 끊긴다」는 거짓이었고, 그 오진이 이 항목을 막고 있었다. known-pair: soffice 부재는 참(which soffice → not found · LibreOffice.app 없음) · pdftoppm 실재는 참(/opt/homebrew/bin/pdftoppm) — 그런데 PowerPoint AppleScript save as PDF 로 120장 덱이 실제로 12회 렌더됐다(/tmp/v11*.pdf 12개, 최신본 120페이지 %PDF-1.3, 2026-09-01 실측). ⇒ 끊긴 것은 **「LibreOffice 경로」**지 **「pptx→PDF」**가 아니다. 🟥 미구축 사유가 바뀐다: 「렌더가 안 된다」(장애물 실재) → 「기준선을 아직 안 쟀다」(장애물 없음). 두 상태는 다르고, 전자는 «못 한다»로 후자는 «안 했다»로 읽힌다. [[feedback_rule_misdescribes_its_own_machine]] 기준선 형태는 정해져 있다: 레퍼런스 덱을 실측해 장 유형별 화면 자수 기준선을 세우고 미달 장을 센다 — 값은 발표마다 다시 재야 한다 |
| 흐름이 매끄럽지 않다 | 🟡 절반 덮인다 | L8 은 «지시 대상이 해소되나»를 볼 뿐 «논지가 서나»를 못 본다. 🟢 그 부분집합 하나는 이제 덮인다 — L9 progression 이 «선언된 단계가 화면에서 빠졌나»를 본다(압축에서 첫 칸이 떨어지는 실사고). ⚠️ «논지가 서나» 자체는 여전히 미해결이고, 되읊음 대조(리뷰어가 요약한 뜻이 저자 의도와 반대인가)는 사람이 한다 |
What ships with it
18 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- canon_terms.example.yaml 2.6 KB
- fixtures/adjdup_known_negative.md 274 B
- fixtures/adjdup_known_positive.md 389 B
- fixtures/progression_known_negative.md 220 B
- fixtures/progression_known_positive.md 402 B
- fixtures/promise_known_negative.md 320 B
- fixtures/promise_known_positive.md 186 B
- interslide_deps.py 13 KB runs code
- jargon_terms.example.yaml 3.2 KB
- lane_adjacent_dup.py 4.7 KB runs code
- lane_progression.py 4.6 KB runs code
- lane_promise.py 7.7 KB runs code
- ooxml/c1_baseline.txt 170 B
- ooxml/gate.py 9.7 KB runs code
- preprep.py 51 KB runs code
- presentation_checklist.md 29 KB
- README.md 2.7 KB
- surfaces.example.yaml 8.9 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed 5eec2e3e2435
- 4d ago First seen · 215 lines · 216 tokens per session scan A 57daa2b662aa
preprep is a skill published in the GitHub repository chrono-meta/forge-harness (14 stars, last pushed today), licensed MIT. It adds 216 tokens to every session and 5,930 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
reconcile
Cross-reference a paper against the collection. Finds which cited papers are already collected, which are new leads, which collection papers cite this one, and reconciles all cross-references bidirectionally. Run on a single paper directory or use --all for the entire collection.
adjudicate
Systematically adjudicate disagreements across a paper collection. Produces ruthless verdicts on who was wrong, what supersedes what, and what the best current understanding is. Organized by topic clusters with actionable replacement values for implementation.
author-context
Create a propstore context for one paper with CEL assumptions, parameters, and perspective. Every claim extracted from the paper will reference this context. Required before extract-claims if the paper does not already have one.
author-rules
Author the DeLP rule artifacts (strict, defeasible, properdefeater, blockingdefeater) encoding a paper's stated argument structure. Runs after register-predicates.
extract-claims
Extract propositional claims from a paper directory into the propstore source branch using pks source propose-claim.
paper-retriever
Retrieve a scientific paper PDF given an arxiv URL, DOI, or paper title. Downloads to papers/ directory. Handles open-access retrieval (arxiv direct, Chrome print-to-pdf for publisher-direct HTML, Unpaywall, title-based open-repository search); for paywalled papers it hands off to whichever paper-retriever- access…