Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Specs for agentic software development that are honest about what they know.
Most specs mix verified truths with guesswork and never say which is which. Here, every requirement says because and names the facts or assumptions it rests on. What nobody can answer yet is written down as an open question, so the gap is visible instead of guessed. A check makes sure that no requirement is more certain than its grounds.
Facts → requirements → specs.
This is the simplified version of the original engine, which is kept in the target_state branch. It keeps the same principles with 5 record types instead of 10 and one script instead of a toolchain.
Each picture adds one idea to the one before.
Facts → requirements → specs. A requirement holds only if the facts it rests on hold, and a spec holds only if its requirements hold. A spec is therefore never more certain than the least certain thing underneath it, and an unanswered question is less certain than any assumption, because there is not even a guess to test. Everything else in this repo (the because links, the open questions, the provisional/broken statuses, the impact trace) follows from this.
It is an axiom, so it is stated here to be checked, not taken on faith:
FCT and ASM here.flowchart LR
ASM["Assumption (ASM)"] -->|"validated, promoted to"| FCT["Fact (FCT)"]
FCT -->|"because"| REQ["Requirement (REQ)"]
ASM -.->|"because (provisional)"| REQ
QST["Open question (QST)"] -.->|"blocks (provisional)"| REQ
FCT -->|"answers"| QST
ASM -.->|"answers"| QST
REQ -->|"grouped into"| SPC["Spec (SPC)"]
SPC -->|"render"| OUT["Markdown / Gherkin / ..."]
| Record | Means | Statuses |
|---|---|---|
ASM Assumption | Something we believe but have not proven, with a plan to validate it | open → validated (promoted to a fact) or invalidated |
FCT Fact | Something we know, with evidence | active, deprecated |
QST Question | A gap with no candidate answer yet. It blocks requirements or specs until it is answered_by a fact or assumption | open → answered |
REQ Requirement | What the system MUST/SHOULD do, because of facts/assumptions, with Given/When/Then acceptance | provisional, active, broken |
SPC Spec | A group of requirements, either the walking skeleton or a feature on top of it | draft, active |
provisional. If that assumption is refuted, the requirement is broken. Only requirements resting on facts can be active.provisional, and rendered specs list it next to the requirement, so an implementing agent asks instead of guessing.records/, with a stable ID and links in YAML front matter. This gives clean diffs, no merge conflicts, and files agents can read easily.skeleton spec delivers the end-to-end core, and feature specs depends_on it. When a fact changes, impact lists the specs to rebuild in that order.pip install -r requirements.txt
python tools/spec.py check --strict # links, epistemic gates, open questions, spec DAG
python tools/spec.py impact FCT-0001 # what to revisit when FCT-0001 changes
python tools/spec.py render --tier skeleton # write dist/SPC-*.md
python tools/spec.py render --format gherkin # write dist/SPC-*.feature
python tools/spec.py index # write site/data/index.json for the workspace
python -m unittest discover -s tests # one test per acceptance scenario
Example output:
18 records · 0 errors · 0 warnings
SPC-0001 [skeleton] 100% ready Record graph and epistemic check
SPC-0002 [feature ] 0% ready Rendering and guardrails
https://jvanheerikhuize.github.io/asdlc-meta-specs/ is a small static site in site/ (one HTML page, one script, no build step). It is rebuilt and deployed on every push to main.
Local preview: python tools/spec.py index && python -m http.server -d site 8000.
To enable Pages on a fork: Settings → Pages → Source: GitHub Actions.
Copy a record of the same type, take the next free ID, name the file <ID>-<slug>.md, and run check.
---
id: REQ-0008
title: Short, behavioural title
status: provisional # open assumption in `because` → provisional
because: [FCT-0001, ASM-0002]
---
## Statement
The system MUST ...
## Acceptance
- Given ...
- When ...
- Then ...
To validate an assumption: add a FCT with evidence and promoted_from: ASM-xxxx, then set the assumption to status: validated with promoted_to: FCT-xxxx. The check then asks dependent requirements to cite the fact instead, after which they can become active.
To ask a question: add a QST with status: open and blocks: [REQ-xxxx]. Everything it blocks stays provisional (requirements) or draft (specs) until it is answered. To answer it, record the answer as a fact or an assumption, set the question to status: answered with answered_by: <that ID>, and add the answer to the because of each requirement it blocked. The workspace lists these edits for you.
The records in records/ are the spec for this repository. The skeleton (SPC-0001) is fully grounded in facts and active. The feature spec (SPC-0002) is still draft, because its requirements rest on three open assumptions and one open question (QST-0002: which formats do the agent tools we target actually read?). That is the point: the spec shows where its own knowledge stops.
records/ all records, one file each (ASM, FCT, QST, REQ, SPC)
tools/spec.py check · impact · render · index
site/ the Pages workspace (index.html, app.js, styles.css)
docs/concepts/ the six pictures above
ROADMAP.md from this starting point to the target state
tests/ one test per acceptance scenario
This repository is the starting point. The full original engine is kept in the target_state branch, and ROADMAP.md explains how to grow towards it: one evidence-backed step at a time.