Generated Computers
Locals: an Apple Silicon engine that runs local LLMs up to 3x faster. A product of Generated Computers.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Issuegraph — a vendor-neutral specification for machine-readable work relationships and ordering on existing issue trackers. Stewarded by Autonomy LLC.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A specification for machine-readable work relationships and ordering — written directly onto the issues you already have.
A backlog is a list, and a list doesn't say what order to do things in, what can run in parallel, or which small issue is secretly the most urgent thing in the system because everything else is waiting on it. Humans carry that knowledge in conversation. Schedulers and autonomous agents can't — a scheduler cannot act on prose.
Issuegraph puts the ordering knowledge on the issues themselves, as plain YAML frontmatter any tracker can store and any tool already knows how to read:
---
issuegraph:
blocked-by: ["#231", "#234"]
decomposed-from: "#230"
serialize-with: "#232"
priority: 1
---
A reference is whatever your tracker calls an issue — 231, #231, ABC-231, or owner/repo#231. Writing it with the # sigil makes the tracker auto-link it, which stamps a cross-reference on the target issue: the one place you can see what an issue is blocking, since the format deliberately has no blocks field. Quote the sigil — # starts a comment in YAML — and leave a blank line before the closing ---, or a markdown renderer reads it as a heading underline.
Seven fields. Three chapters of rules. No server, no new tool, no migration — your tracker remains the source of truth.
serialize-with covers the known-conflict case (two features gutting the same files) without inventing a false ordering.decomposed-from) and queries replace the tracking issue entirely.Issuegraph describes work, never execution — no claims, leases, statuses, or logs. Those belong to the system doing the work, and embedding them couples a format to one executor's lifetime. The full reasoning, field semantics, writing rules, and reader algorithms are in the spec:
→ SPEC.md · worked example · changelog
The reference implementation lives here as a pnpm workspace under packages/, published to npm under the @issuegraph scope.
| package | what it is |
|---|---|
@issuegraph/core | the specification's vocabulary as frozen constants and derived types — field names, cardinality, value sets, documented defaults. No parsing, no I/O. |
@issuegraph/reader | reads the block out of an issue body and derives the graph — ready set, effective priority, serialize and together components, duplicate resolution, cycles. No writes, no network. |
@issuegraph/writer | writes the block back — render a fresh one, splice the edges one writer owns without disturbing anything else, or re-delimit a block a code fence left inert. Pure string work; no reads, no network. |
@issuegraph/derive | the selection order that follows from a model — ranked slots, held slots with the reason each is held, together units as one slot, priority promotions — plus the pre-write refusal for a blocked-by edge that would close a cycle. |
@issuegraph/cli | one command over the packages above — read a body's block, derive the order over a set of issues you supply, edit the block in place. Composes them and parses nothing itself; the outermost input and output is the ticket body, so it runs in a workflow with no token. |
@issuegraph/store | a framework-free client store for a document, and the data-source port a host plugs its tracker in through. Renders edits optimistically, dispatches every one outward, and never re-evaluates the selection order until the write lands. |
Versioning: 0.x, and unstable. These packages track a draft specification, so breaking changes before 1.0 are expected and a minor bump may break you — pin exactly if that matters. A published version is a public commitment and npm does not allow an unpublish after 72 hours, so nothing is published on a merge: publishing happens on an explicit GitHub release.
Imports are linted, not pattern-matched. pnpm run lint runs ESLint over packages/, which parses the real syntax tree: a forbidden consumer import, an absolute path (static or dynamic), and a relative import reaching into a sibling package all fail the build. Each rule is proved by a fixture written to break it, including a control that the config matches the file at all — a green lint run means nothing if it linted nothing.
Isolation is mechanical, not a convention. Nothing in this repository may reach into a consumer's codebase — a package that depends on one consumer is a private library wearing a public name. pnpm run check:isolation fails the build on a forbidden dependency — named by a key, an npm: alias, or a git URL — on a relative import escaping its own package, and on a consumer's brand token in any text a package ships: source, README, a JSON schema, a NOTICE, or package.json metadata. There is no extension allowlist and no exemption for built output, because what a package can publish is an open set — and dist, with the sources its maps embed, is the part that actually ships. The guard is proved by scripts/check-isolation.test.ts, which builds packages that break each rule and asserts it reports exactly that rule.
Working on them:
pnpm install
pnpm run ci # build, typecheck, lint, test, isolation
v0.3.0 draft. Published for implementation, not adoption claims: the spec is being implemented against a real backlog by a real autonomous pipeline, and will be amended from what breaks before any 1.0. Expect changes.
Stewarded by Autonomy LLC. Apache-2.0.
@issuegraph/viewer| render a document as a work order — the ordered spine with readiness stations, the five edge treatments, and three projections. Rendering only: no fetching, no mutation, no auth, and every value themeable through CSS custom properties. |