Atlas / Skills / kkenny0 / Tracework

TraceworkBLOCK

skills/kkenny0/tracework

Agentic coding decision replay:记录为什么,把 session signals 逐层收口成可核验的周报、月报和路线图。

Verdict
BLOCK
Grade
D
Trust score
61 /100
Version
—
Hosts
2 documented
License
—
Stars
2
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

Tracework

把 Agent 工作,收口成有证据的进展报告。

项目页 · 文档 · English

日常说“收工”留下关键事实;需要时生成日报、周报、月报。

记录留在你自己的本地 vault。还没“收工”也能直接写报告:项目、分组和工作日期 明确的当前对话事实可以临时作为依据,不会自动存入长期记忆或读取其他对话。只有 git 记录时,报告生成 limited 版本,明确缺口,不编造动机或成果。

Tracework 是面向 Codex 和 Claude Code 的本地报告插件,提供五个 skills: capture 留下关键事实,daily、weekly、monthly 生成进展报告, cold-start-interview 配置记录位置与项目分组。

日报、周报和月报先确定项目范围,再读取有效记录;公司与个人项目分开处理。 月报直接依据原始记录和当前风险状态,日报、周报只作为历史判断参考,无需先写齐日报。 部分项目读取失败时,返回注明缺口的对话草稿;只有明确要求保存草稿时才写入文件。

最短试用

安装后,在任意有工作记录的项目里直接试:

写周报
# 或
/tracework:weekly

也可以先写今天的收口:写日报 / /tracework:daily。

不配置 vault 也能先在对话里看到结果。若要跨天累计、写入文件,以及严格区分公司 / 个人项目,再运行 /tracework:cold-start-interview。

安装

Codex

codex plugin marketplace add KKenny0/Tracework
codex plugin add tracework@tracework

Claude Code

claude plugin marketplace add KKenny0/Tracework
claude plugin install tracework@tracework

核心循环

Agent 工作
-> 收工,留下关键事实
-> 写日报 / 写周报 / 写月报

公司与个人项目分区

每个项目可以声明报告分组:

profile:
project_name: My Project
reporting_group: work   # 也可以是 personal、open-source、consulting

Daily、Weekly、Monthly 必须先分区,再选择主线:

  • work:只包含公司项目,任何个人内容都不得进入正文或证据附录。
  • personal:只包含个人项目。
  • all:私人全景视图,各组分别拥有自己的判断和 headline。

Weekly 会在每个分组内先恢复目标来源,再解释实际变化、偏差和下周承诺,不固定 headline 数量。Brief 正文只保留会改变管理判断的信息,完整承诺、工作组合与证据 进入附录;其余有意义的工作不会因为没有进入正文而消失。

范围依次采用:明确指定的分组 → 配置的默认分组 → 当前项目分组。都未确定时,只在 对话中输出当前项

Read from source at commit 9b12b0e816abOBSERVED · 2026-10-14
Advertisement
02

Install

Commands as the repository documents them. They are shown, not run.

claude plugin install tracework@tracework
claude plugin install tracework@tracework
claude plugin install tracework@tracework
claude plugin install tracework@tracework
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: capture
description: >
  Adaptive-depth session recap and low-friction checkpoint capture for
  report-ready Tracework memory. Use this skill for "/tracework:capture" or when
  the user signals end of a work session, such as "收工", "今天到这", "done",
  "wrap up", "that's it for today", "好了", or "先这样". Also trigger on
  explicit checkpoint or logging requests like "记录变更", "log changes",
  "记一下今天做了什么", "记一下当前进展", or "checkpoint". The skill dynamically
  routes the session to lite, standard, or deep capture depth; explicit
  "/tracework:capture lite|standard|deep" wording overrides that route. Use day
  mode for "/tracework:capture day", "扫描今天的会话", "补录今天", or "capture
  today". Also use for explicit correction of a stored fact ("原记录记错了",
  "更正这条记录"). Do NOT trigger when the user is simply saying goodbye or switching
  topics.
---

# Adaptive-Depth Session Recap

Capture session-end or checkpoint signals into Tracework raw entries. The goal
is not a chronological diary. Preserve the lightest durable work signal that
can improve Daily, Weekly, and Monthly and support evidence drill-down when needed.

Tracework is reporting-first: Daily, Weekly, and Monthly can still produce
direct value without a fresh capture. Capture improves their evidence boundary
and preserves the facts behind their conclusions.

## Progressive References

Keep this file focused on routing and workflow. Read these references only when
needed:

- `references/capture-routing.md`: choose `capture_depth` and handle explicit
  lite/standard/deep overrides. Read before finalizing entries.
- `references/capture-entry-writing.md`: build a standalone explanation before
  filling raw fields; check source fidelity, then add evidence, artifact context,
  reporting metadata, and Markdown fallback. Read for every entry.
- `references/capture-operations.md`: resolve config, call `tracework_raw.py`,
  write artifact dossiers, and format quiet receipts.
- `references/capture-corrections.md`: explicit correction of a stored fact only.
- `references/capture-day.md`: scan indexed Codex and Claude sessions for one
  date without mixing reporting groups. Read for day mode only.
- `references/tracework-storage-convention.md`: shared schema and storage rules.

## Zero-Config Mode

This skill works with or without a configured knowledge vault:

- With a vault: write entries to
  `{vault}/raw/weeks/{ISO-week}/{project-slug}.json`; write artifact dossiers
  to `{vault}/raw/artifacts/{project-slug}.json` only when the routed capture
  depth and session signal justify it. Keep output quiet by default.
- Without a vault: return structured Markdown in the conversation. Do not write
  files or create directories. Add a one-line setup hint.

Zero-config mode is best-effort. Fill fields that are supported by the
conversation and local evidence, but do not interrogate the user just to enrich
optional fields.

## Workflow

1. **Detect mode and depth.**
   - For a mistaken stored fact, follow `references/capture-corrections.md`.
     Wording edits change reports only; later real changes use lifecycle_transition.
   - Default mode is session-end capture.
   - Use checkpoint mode for "checkpoint", "记一下当前进展", or
     `/tracework:capture checkpoint`.
   - Use day mode for `/tracework:capture day [YYYY-MM-DD] [scope]` or its
     natural-language triggers. Read `references/capture-day.md` and follow it
     instead of extracting only the current conversation.
   - Read `references/capture-routing.md`, then choose one session-level
     `capture_depth`: `lite`, `standard`, or `deep`.
   - Respect explicit depth overrides such as `/tracework:capture deep` or
     "简单记一下". If no override exists, route from the session evidence.

2. **Extract signals.**
   - Read `references/capture-entry-writing.md`.
   - Classify the primary archetype: `decision`, `repair`, `investigation`,
     `build`, or `maintenance`.
   - Build the supported explanation before filling fields, following the
     entry-writing reference: goal, key cause or constraint, chosen action and
     reason, result, and remaining gate. Preserve material changes of direction.
   - Group related work into 1-3 entries. Use at most 5 entries for unusually
     broad sessions.
   - For normal session-end or checkpoint capture, resolve one immutable
     committed-tree snapshot for code-backed entries as described in
     `references/capture-entry-writing.md`. Never backfill Capture Day with the
     repository's current `HEAD`.

3. **Generate raw entries.**
   - Include `capture_depth` on every new `session-recap` entry.
   - Add the minimal `reporting` object only when the report boundary is clear.
     Keep `work_stream` at the top level and do not pre-write channel-specific
     Daily/Weekly/Monthly carry-forward prose.
   - Add `artifact_context` and artifact dossier side effects only when the
     session materially changed durable artifacts or routed to `deep`.
   - For a durable design or architecture artifact, preserve a compact
     recoverable digest in existing entry and dossier fields: why it exists,
     its goal, final choice and shortest rationale, core objects and
     relationships, material path or fallback, current-versus-target boundary,
     and remaining gate. Do not copy the full document.
   - When a local design source moved to a cloud document, keep the last local
     path for provenance and add a typed `doc` source ref with the stable URL
     and document or revision id when known.
   - Do not assign report-local `O#`, `W#`, `D#`, or `E#` labels.

4. **Write or fallback.**
   - Apply the standalone-reading and source-fidelity checks in
     `references/capture-entry-writing.md` before persistence.
   - Read `references/capture-operations.md`.
   - Use `tracework_raw.py append-entry` as the canonical write path.
   - Upsert artifact dossiers when warranted and enabled.
   - Register the project as a best-effort side effect.
   - If config or helper calls fail, return the Mark
05

Trust audit

BLOCKgrade D · trust 61/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
declared (4 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (11)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
cli/scripts/check-skills.mjs:86
return yaml.load(match[1]);
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
cli/scripts/check-skills.mjs:93
return yaml.load(fs.readFileSync(metadataPath, 'utf-8'));
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
cli/src/config.ts:47
return yaml.load(raw) as TraceworkConfig;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
cli/src/config.ts:95
const projectCfg = yaml.load(raw) as TraceworkConfig;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
plugins/tracework/skills/daily/scripts/update_daily_note.py:53
group = bytes.fromhex(key[1]).decode('utf-8')
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
plugins/tracework/skills/monthly/scripts/prepare_monthly_data.py:42
group = bytes.fromhex(group_hex).decode('utf-8')
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
skills/daily/scripts/update_daily_note.py:53
group = bytes.fromhex(key[1]).decode('utf-8')
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
skills/monthly/scripts/prepare_monthly_data.py:42
group = bytes.fromhex(group_hex).decode('utf-8')
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
cli/package.json
chalk, commander, js-yaml, @types/js-yaml, @types/node, typescript
Why it matters. 6 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
site/package.json
vitepress, vue, vitepress-plugin-llms
Why it matters. 3 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-14 · audit v0.4.1 · source sha 9b12b0e816abfull audit observations/trust-audit/skill/kkenny0__tracework.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-149b12b0e816abBLOCKD61first audit
07

Questions

What does the Tracework skill do?

Agentic coding decision replay:记录为什么,把 session signals 逐层收口成可核验的周报、月报和路线图。

Is Tracework safe to install?

No — not without reading the findings first. The audit graded it D (61/100) and found 4 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can Tracework access on my machine?

The audit observed that it runs shell commands. Each of those is consistent with what it says it does. Secrets in the source: none found.

Which assistants does Tracework work with?

Its documentation mentions claude-code and codex. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (9b12b0e816ab), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Advertisement