assay/əˈseɪ/verb动词 to analyze an ore and determine what it is made of.化验矿石,确定它的成分。

Study many.Build your own. 博采众长,自成一体。

A command-line workbench for people who build by studying. Every fact has one authority; every decision keeps its evidence. 一个命令行工作台,为靠研究来建造的人而生。每个事实只有一个权威;每个决策都留着证据。

Assay: raw material flows in, refined knowledge flows out. Hand-drawn documents feed a crucible; refined records come out.
Fig. 1Raw material in, refined knowledge out.原料进,知识出。

The evidence loop证据闭环

Assay keeps one loop under your version control. The discipline is small but strict. Assay 把一条闭环放进你的版本控制。纪律很小,但很严格。

sources/ analyses/ systems/ knowledge/ OBSERVE INTERPRET BUILD REMEMBER
Fig. 2Every adoption of outside material keeps its evidence; every decision is recorded, not remembered.每次采纳外部材料都留下证据;每个决策都被记录,而不是被记住。

Study many.

Capture frameworks, libraries, patterns, and ideas as observed Sources, then work them through recorded Analyses. Every evaluation closes with an explicit adopt, reject, or defer decision plus its evidence. Months later you can still answer: what did we take, why, and does it still hold? 把框架、库、模式与想法捕获为可观察的 Source,在留档的 Analysis 中逐一检验。每个评估都以明确的采纳、拒绝或暂缓决策加证据关闭。几个月后你依然能回答:拿了什么、为什么、现在是否还成立?

Build your own.

Promote what proves out into your own registered Systems and Knowledge. Tasks, Roadmaps, and Specs keep the work moving, with stable identities that survive sessions, agent switches, and context compaction. 把验证过的成果推进你自己的 SystemKnowledgeTaskRoadmapSpec 推动工作前进,它们的稳定身份能跨会话、跨 agent、跨上下文压缩存活。

Where it shines最好用的场景

A general workbench, but three scenarios get the most out of it. 一个通用工作台,但有三类场景最能发挥它。

  1. Evaluating external frameworks评估外部框架

    Add a repo as a living or frozen Source, review it in an Analysis, and record an adopt / reject / experiment exit. Adoption receipts tie what you carried into your systems to evidence, so next year's you knows what came from where, and why. 把一个仓库加为 living 或 frozen Source,在 Analysis 中评审,记录 adopt / reject / experiment 出口。采纳收据把你搬进系统的材料与证据绑定,一年后的你能精确知道每块东西来自哪里、为什么。

  2. Long-running projects with AI assistants与 AI 助手共跑的长期项目

    Tasks keep stable ids, reader-owned PRDs, and handoff checkpoints. Roadmaps and Specs hold direction and acceptance. All of it survives sessions, agent switches, and context compaction. Task 有稳定 id、reader-owned PRD 与交接 checkpoint。Roadmap 与 Spec 承载方向与验收。它们都能跨会话、跨 agent、跨上下文压缩存活。

  3. Evidence-driven exploration证据驱动的探索

    One-shot Templates scaffold the loop for different work: study for evaluating systems, solve for objectives and benchmarks, explore for parallel approaches. Custom Templates are plain YAML. 一次性 Template 为不同工作搭建闭环:study 评估外部系统,solve 跟踪目标与基准,explore 并行比较方案。自定义 Template 就是普通 YAML。

Principles原则

The workflow is packaged; the ideas travel anywhere. 工作流是打包好的,思想可以用在任何地方。

One fact, one authority一个事实,一个权威

Assay never guesses a current task from titles or counts, and never keeps two copies of the same truth.Assay 不会从标题或数量猜当前 Task,也绝不维护同一份真相的两个副本。

Evidence before opinion证据先于观点

A copied folder is not an evaluated one; an Analysis is not closed without an explicit exit.复制了一个目录不等于完成了评估;没有显式出口,Analysis 就不算关闭。

Advisory, not a gate建议式,而非关卡

Assay records facts and decisions, then gets out of the way. It blocks only to prevent data loss or corruption.Assay 记录事实与决策,然后让开路。它只在防止数据丢失或损坏时拒绝操作。

Assistant-agnostic core助手无关的内核

The artifact model stands alone; the managed AGENTS.md block and the bundled assay-builder skill are adapters, so the workbench outlives any single assistant.工件模型独立成立;受管理的 AGENTS.md 块与内置的 assay-builder skill 只是适配器,工作台不依赖任何一个助手存活。

Files over services文件优于服务

Git-friendly and inspectable with the tools you already have. Nothing holds your data hostage.Git 友好,用你已有的工具就能检查。没有任何东西能把你的数据扣作人质。

Quick start快速开始

Requires Node.js 22.13 or later and pnpm 11.3.0. 要求 Node.js 22.13 或更高版本,以及 pnpm 11.3.0。

Install and init安装与初始化
git clone https://github.com/X-T-E-R/assay.git
cd assay
pnpm install && pnpm build

# create a workbench# 创建一个工作台
node packages/assay-cli/dist/cli.js init ../my-study --name MyStudy --template study
node packages/assay-cli/dist/cli.js status --root ../my-study
node packages/assay-cli/dist/cli.js check  --root ../my-study
A typical session一个典型会话
assay source add https://github.com/some/framework --mode frozen
assay analysis new "Framework review" --for-source framework
assay analysis close analyses/<file>.md --exit adopt --note "Pattern X is worth reusing"
assay knowledge add pattern "Pattern X" --from-analysis analyses/<file>.md
assay task create --title "Port pattern X" --description "Bounded outcome with acceptance criteria"

Driving it from an AI assistant? Run node scripts/install.mjs to build the repo and link the bundled assay-builder skill into your skills directory. 想在 AI 助手中驱动它?运行 node scripts/install.mjs,它会构建仓库并把内置的 assay-builder skill 链接进你的 skills 目录。