Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Spec of Record는 AI 구축 소프트웨어를 이해하기 쉽게 하고, 사양이 코드와 동기화돼 팀이 검토·수정할 수 있게 합니다
Spec of Record keeps AI-built software understandable. One plain-language spec stays in sync with the code, so the whole team can review and change it.
플러그인Python · JavaScriptGitHub @sebastianrath온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Keep the spec as the source of truth for AI-built software. Clauses in plain language, code linked to them, tests and a lock file that show when the two drift.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Spec of Record is a development philosophy and toolchain for AI-built software, where one or many agents build from multiple spec files, aimed at mid-sized to large projects. It turns all specs into a centralized design document that always stays in sync with the code, so a team of different specialties can understand, review and change the software together. You write what your software should do in plain language, an AI agent turns it into code, and each piece of code stays linked to the statements in the spec and to its test results.
The spec is split into parts, so engineering, QA and UX can each work in their own field of expertise while sharing a common design document. You can change either side, the spec or the code, and the other one is updated to match.
To learn how this works, start at specofrecord.org. It covers the goal, an example, how to install it, the tools and the questions people ask. This README only says what is in this repository.
| Folder or file | What it is |
|---|---|
SPEC.md | The format. It covers files and hierarchy, the four sections of a part (Rules, Approach, Contract, Tests), items and ids, values and references, targets, code markers, the lock file (sor-lock.json), what a tool enforces and how agents work in parallel. It starts with a cheat sheet. |
tools/ | The sor command. That is tools/py/sor.py and the library behind it (tools/py/sorlib/), with its own tests and a coverage script. python3 tools/py/sor.py --help lists what it does. tools/js/ is a JavaScript copy of the commands an editor needs (markers, status and parts as JSON), which the VS Code extension runs so that it needs no Python. |
plugins/specofrecord/ | The Claude Code plugin, with the workflow skill, the edit guard and a copy of tools/. Its README has the requirements. |
.claude-plugin/marketplace.json | Lets the repository itself be added as a plugin marketplace. |
examples/solar-system/ | A complete project built with it, where planets orbit and you click one for a fun fact. Specs in sor/, the built page in out/. A good place to read real clauses next to their code. |
editors/vscode/ | The VS Code extension. It shows, inside the editor, which code comes from which clause and whether they still agree. It ships the JavaScript tool (tools/js) and runs it on the editor's own Node, so it needs no Python. |
.github/workflows/ | The builds. One makes the plugin zip, with tools/ bundled, and the other makes the extension's .vsix. |
SECURITY.md | How to report a security problem privately, and what is in scope. |
AGENTS.md, CLAUDE.md | How a coding agent works in a project with a sor/ folder. CLAUDE.md imports the plugin's skill, so the workflow is written once. |
index.html, social/ | The project page and its banner. |
python3 -m unittest discover -s tools/py -p 'test_*.py'. They need no browser and touch only temporary
folders.sh tools/py/coverage.sh runs them under coverage.node installed (16 or later) the same run also checks the JavaScript copy in tools/js/ against the Python tool. Without it that test is skipped and says so.tools/ and of the cheat sheet, and the VS Code extension carries the JavaScript tool, tools/js.
After changing tools/ or the cheat sheet in SPEC.md, run sh plugins/sync-tools.sh (--check fails when a copy is
out of date).v<version>, for example
git tag -s v0.1.19 -m v0.1.19 && git push origin v0.1.19. The whole repository has one version, kept in
plugins/specofrecord/.claude-plugin/plugin.json, editors/vscode/package.json (and its lock file) and
tools/js/package.json, and a release fails when a build finds a version other than the tag's.
.github/workflows/release.yml builds the plugin zip with plugins/build-plugin.py
and the .vsix, then makes one GitHub release with both files (sor-plugin-v0.1.19.zip, sor-vscode-v0.1.19.vsix), a
checksum for the zip, and an attestation receipt for each file (<file>.attestation.jsonl). A download can be checked
against this repository with gh attestation verify <file> --repo sebastianrath/specofrecord, or offline by giving that
command the receipt as its bundle. It has to be one job, because GitHub locks a release once it is published. The .vsix is then
published to the Visual Studio Marketplace, once a publisher exists and the secret VSCE_PAT is set in the repository's
marketplace environment.sor lock or sor claim against examples/ or editors/vscode to try the tool out. Use a temporary
folder.The spec is CC BY 4.0 and the toolset is MIT. See LICENSE.md.