Codync
免費、開源的 1:1 替代方案,取代 Grok Bot 與 Muse。從 iPhone、Mac 或 Linux 桌面將 Claude Code、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.