create-zudo-circuit-doc 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/LICENSE +21 -0
- package/README.md +58 -0
- package/bin/create-zudo-circuit-doc.js +6 -0
- package/dist/args.d.ts +21 -0
- package/dist/args.js +71 -0
- package/dist/cli.d.ts +27 -0
- package/dist/cli.js +101 -0
- package/dist/errors.d.ts +4 -0
- package/dist/errors.js +7 -0
- package/dist/git.d.ts +11 -0
- package/dist/git.js +69 -0
- package/dist/help.d.ts +2 -0
- package/dist/help.js +21 -0
- package/dist/install.d.ts +3 -0
- package/dist/install.js +17 -0
- package/dist/next-steps.d.ts +10 -0
- package/dist/next-steps.js +24 -0
- package/dist/plan.d.ts +17 -0
- package/dist/plan.js +59 -0
- package/dist/prompt.d.ts +3 -0
- package/dist/prompt.js +12 -0
- package/dist/scaffold.d.ts +22 -0
- package/dist/scaffold.js +187 -0
- package/dist/shell-quote.d.ts +2 -0
- package/dist/shell-quote.js +7 -0
- package/dist/validate.d.ts +18 -0
- package/dist/validate.js +85 -0
- package/dist/version.d.ts +6 -0
- package/dist/version.js +13 -0
- package/package.json +49 -0
- package/templates/default/.claude/skills/circuit-spec-integration/SKILL.md +22 -0
- package/templates/default/.claude/skills/circuit-spec-integration/references/rules.json +4 -0
- package/templates/default/.claude/skills/component-spec-audit/SKILL.md +36 -0
- package/templates/default/.claude/skills/component-spec-audit/references/contract.md +21 -0
- package/templates/default/.claude/skills/component-spec-audit/references/direct-routing.json +5 -0
- package/templates/default/.claude/skills/component-spec-audit/references/external-vendor-qualifiers.json +4 -0
- package/templates/default/.claude/skills/component-spec-audit/references/inventory.json +11 -0
- package/templates/default/.claude/skills/component-spec-audit/references/new-component-workflow.md +113 -0
- package/templates/default/AGENTS.md +7 -0
- package/templates/default/CLAUDE.md +7 -0
- package/templates/default/README.md +49 -0
- package/templates/default/ZUDO_DEPS_PINS.md +48 -0
- package/templates/default/_gitignore +25 -0
- package/templates/default/circuit/WORKFLOW.md +361 -0
- package/templates/default/circuit/agent-task-examples.md +178 -0
- package/templates/default/circuit/checks/README.md +37 -0
- package/templates/default/circuit/generated/preflight.json +625 -0
- package/templates/default/circuit/publication/assets.json +9 -0
- package/templates/default/circuit/publication/selection.json +13 -0
- package/templates/default/circuit/templates/README.md +33 -0
- package/templates/default/circuit/templates/cad-asset-receipt.json +58 -0
- package/templates/default/circuit/templates/cad-asset-receipt.md +33 -0
- package/templates/default/circuit/templates/project-docs/architecture/interfaces.mdx +52 -0
- package/templates/default/circuit/templates/project-docs/architecture/overview.mdx +55 -0
- package/templates/default/circuit/templates/project-docs/decisions/decision.mdx +66 -0
- package/templates/default/circuit/templates/project-docs/decisions/sourcing.mdx +57 -0
- package/templates/default/circuit/templates/project-docs/project/change-impact.mdx +61 -0
- package/templates/default/circuit/templates/project-docs/project/index.mdx +62 -0
- package/templates/default/circuit/templates/project-docs/project/next-actions.mdx +58 -0
- package/templates/default/circuit/templates/project-docs/project/task-request.mdx +56 -0
- package/templates/default/circuit/templates/project-docs/research/component-candidate.mdx +60 -0
- package/templates/default/circuit/templates/project-docs/verification/bring-up.mdx +55 -0
- package/templates/default/circuit.config.ts +36 -0
- package/templates/default/doc/package.json +37 -0
- package/templates/default/doc/pages/docs/[[...slug]].tsx +68 -0
- package/templates/default/doc/pages/index.tsx +6 -0
- package/templates/default/doc/pages/lib/_circuit-doc-islands.ts +4 -0
- package/templates/default/doc/public/favicon-16x16.png +0 -0
- package/templates/default/doc/public/favicon-32x32.png +0 -0
- package/templates/default/doc/public/favicon.ico +0 -0
- package/templates/default/doc/public/favicon.svg +4 -0
- package/templates/default/doc/scripts/check-links.js +969 -0
- package/templates/default/doc/src/chrome-bindings.tsx +11 -0
- package/templates/default/doc/src/content/docs/architecture/index.mdx +11 -0
- package/templates/default/doc/src/content/docs/architecture/overview.mdx +55 -0
- package/templates/default/doc/src/content/docs/components/catalog/index.mdx +12 -0
- package/templates/default/doc/src/content/docs/components/index.mdx +49 -0
- package/templates/default/doc/src/content/docs/components/integration/index.mdx +34 -0
- package/templates/default/doc/src/content/docs/components/records/index.mdx +14 -0
- package/templates/default/doc/src/content/docs/decisions/index.mdx +9 -0
- package/templates/default/doc/src/content/docs/project/how-we-work.mdx +67 -0
- package/templates/default/doc/src/content/docs/project/index.mdx +60 -0
- package/templates/default/doc/src/content/docs/project/next-actions.mdx +58 -0
- package/templates/default/doc/src/content/docs/research/index.mdx +9 -0
- package/templates/default/doc/src/content/docs/verification/index.mdx +9 -0
- package/templates/default/doc/src/styles/global.css +31 -0
- package/templates/default/doc/tsconfig.json +13 -0
- package/templates/default/doc/zfb.config.ts +78 -0
- package/templates/default/package.json +23 -0
- package/templates/default/pnpm-workspace.yaml +9 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// ADR-016 seam: registers the package's MDX components (EvidenceAnchor,
|
|
2
|
+
// EvidenceDetails, EvidenceFact, EvidenceTable, ComponentReferences,
|
|
3
|
+
// PackageModelViewer) with zudo-doc's chrome, so generated component pages
|
|
4
|
+
// can use them with no import. Referenced by `zfb.config.ts`'s
|
|
5
|
+
// `chromeBindingsModule`.
|
|
6
|
+
import { defineChromeBindings } from "@takazudo/zudo-doc/chrome-bindings";
|
|
7
|
+
import { circuitDocMdxExtras } from "@takazudo/zudo-circuit-doc/mdx-extras";
|
|
8
|
+
|
|
9
|
+
export const chromeBindings = defineChromeBindings({
|
|
10
|
+
mdxExtras: { ...circuitDocMdxExtras },
|
|
11
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Architecture"
|
|
3
|
+
description: "How the circuit is divided into functional blocks, interfaces and operating states."
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This section explains the circuit's structure: what each block is responsible for, how blocks connect, and which states the design moves through. It describes intent and rationale; exact component facts stay in the component evidence records.
|
|
8
|
+
|
|
9
|
+
- [Architecture overview](./overview.mdx) is the current proposal. Nothing has been chosen yet.
|
|
10
|
+
|
|
11
|
+
When blocks or connectors are proposed, add an interfaces page by copying `circuit/templates/project-docs/architecture/interfaces.mdx` into this directory.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Architecture overview"
|
|
3
|
+
description: "Functional blocks, operating states, design boundaries, and unresolved architecture questions."
|
|
4
|
+
sidebar_position: 10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This page describes the architecture as it is proposed. No topology, component, board split, power source, or operating limit has been chosen yet.
|
|
8
|
+
|
|
9
|
+
## Intended behavior
|
|
10
|
+
|
|
11
|
+
Summarize the user-visible behavior from the [project brief](../project/index.mdx). Explain which physical or electrical functions are required to produce it.
|
|
12
|
+
|
|
13
|
+
## Functional blocks
|
|
14
|
+
|
|
15
|
+
| Block ID | Responsibility | Receives | Produces | Current design basis |
|
|
16
|
+
|---|---|---|---|---|
|
|
17
|
+
| Not entered | Not entered | Not entered | Not entered | Requirement, proposed approach, or decision reference |
|
|
18
|
+
|
|
19
|
+
Start with responsibilities rather than IC names. Introduce selected components only after the relevant evidence and decision exist. If a diagram adds clarity, derive it from these same blocks and their interfaces; do not let a diagram silently introduce another net name or voltage domain.
|
|
20
|
+
|
|
21
|
+
## Physical partitioning
|
|
22
|
+
|
|
23
|
+
Describe the proposed physical arrangement: boards, external modules, cables, enclosure, mounting surfaces, and any user-accessible conductors. State why each boundary exists and whether it is fixed or still a candidate.
|
|
24
|
+
|
|
25
|
+
| Boundary | Reason for separating it | Consequence for assembly or testing | Decision reference |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
| Not entered | Not entered | Not entered | Not entered |
|
|
28
|
+
|
|
29
|
+
Do not assume that a visually convenient board split is electrically or mechanically neutral. Record the interface work it creates in the interface page (copy `circuit/templates/project-docs/architecture/interfaces.mdx` when the first interface is proposed).
|
|
30
|
+
|
|
31
|
+
## Operating states and transitions
|
|
32
|
+
|
|
33
|
+
| State | How it is entered | Required outputs or behavior | Defaults and stored configuration | Evidence or test still needed |
|
|
34
|
+
|---|---|---|---|---|
|
|
35
|
+
| State not yet defined | Not entered | Not entered | Not entered | Not entered |
|
|
36
|
+
|
|
37
|
+
Consider only states that apply to this project. Possibilities include unpowered, initial connection, reset, normal operation, deliberate shutdown, service/programming, and recovery from interrupted power. Delete inapplicable cases after recording why they do not apply.
|
|
38
|
+
|
|
39
|
+
Defaults deserve explicit evidence. Separate manufacturer-documented defaults, intended programming, actual readback, firmware initialization, and observed hardware behavior.
|
|
40
|
+
|
|
41
|
+
## Project envelopes and calculations
|
|
42
|
+
|
|
43
|
+
| Analysis question | Related blocks | Required inputs | Evidence or calculation reference | Current limitation |
|
|
44
|
+
|---|---|---|---|---|
|
|
45
|
+
| Not entered | Not entered | Not entered | Not entered | Not entered |
|
|
46
|
+
|
|
47
|
+
Keep exact component limits in the component evidence bundle. Link any cross-component calculation with its input facts, units, conditions, and current design revision. An operating target, a recommended range, a typical value, an absolute maximum, a simulated result, and a measured result are different kinds of information.
|
|
48
|
+
|
|
49
|
+
If an analysis uses an assumed source impedance, load, thermal condition, tolerance, or configuration, state it next to the conclusion. A calculation cannot close a hardware question it did not model.
|
|
50
|
+
|
|
51
|
+
## Architecture choices still open
|
|
52
|
+
|
|
53
|
+
List choices that could change the block structure, interfaces, layout, firmware, or procurement. Link each to [next actions](../project/next-actions.mdx) and name the evidence or owner decision needed to close it.
|
|
54
|
+
|
|
55
|
+
When a choice is made, capture the alternatives and conditions in a [decision record](../decisions/index.mdx). Keep the architecture page current and preserve the historical reasoning in the decision.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
# GENERATED by @takazudo/zudo-circuit-doc — do not edit; run `zudo-circuit-doc generate`
|
|
3
|
+
title: "Catalog"
|
|
4
|
+
description: "Every published component record with its orderable identity, board placements and evidence state."
|
|
5
|
+
sidebar_position: 2
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Generated from the component evidence records — edit the records, not this page.
|
|
9
|
+
|
|
10
|
+
Every component record this project publishes, in the order the bill of materials lists them, with each subordinate record directly after the part it belongs to. The identity, placement and state columns are projected from stored evidence; the record pages behind them carry the facts, sources and coverage themselves.
|
|
11
|
+
|
|
12
|
+
No component record is published yet. Add the first exact component with Workflow B in `circuit/WORKFLOW.md`, then select it in `circuit/publication/selection.json`.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
# GENERATED by @takazudo/zudo-circuit-doc — do not edit; run `zudo-circuit-doc generate`
|
|
3
|
+
title: "Components"
|
|
4
|
+
description: "Human reference projected from this project's validated component evidence."
|
|
5
|
+
sidebar_position: 1
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Generated from the component evidence records — edit the records, not this page.
|
|
9
|
+
|
|
10
|
+
This section publishes the validated component evidence this project already holds as structured data. Every value below is projected from that data — nothing here is re-typed, summarised into a grade, or reconciled by hand.
|
|
11
|
+
|
|
12
|
+
No component record is published yet. Add the first exact component with Workflow B in `circuit/WORKFLOW.md`, then select it in `circuit/publication/selection.json`.
|
|
13
|
+
|
|
14
|
+
## How to read these pages
|
|
15
|
+
|
|
16
|
+
- **Per-domain, never per-part.** Coverage is stated one domain at a time. There is no component-wide pass/fail verdict, and the absence of an open domain is not a safety claim.
|
|
17
|
+
- **Verdicts keep their exact wording.** A distributor-confirmed identity and a primary-source confirmation are different verdicts and are shown as different verdicts.
|
|
18
|
+
- **Open means unresolved, not unsafe.** An open domain names the reason it is open and the exact facts that block it.
|
|
19
|
+
- **Sources may be unavailable.** A source recorded as unavailable stays visible so the gap is auditable rather than invisible.
|
|
20
|
+
|
|
21
|
+
## Corpus
|
|
22
|
+
|
|
23
|
+
<EvidenceAnchor id="components-corpus" />
|
|
24
|
+
|
|
25
|
+
| Item | Count |
|
|
26
|
+
| --------------------- | ----- |
|
|
27
|
+
| Owner bundles | 0 |
|
|
28
|
+
| Records | 0 |
|
|
29
|
+
| Standalone records | 0 |
|
|
30
|
+
| Subordinate records | 0 |
|
|
31
|
+
| Evidence sources | 0 |
|
|
32
|
+
| Facts | 0 |
|
|
33
|
+
| Coverage domains | 0 |
|
|
34
|
+
| Interactions | 0 |
|
|
35
|
+
| Pin maps | 0 |
|
|
36
|
+
| Pins | 0 |
|
|
37
|
+
| Inventory lines | 0 |
|
|
38
|
+
| Fitted lines | 0 |
|
|
39
|
+
| DNP or hand-fit lines | 0 |
|
|
40
|
+
|
|
41
|
+
## Raw agent resources
|
|
42
|
+
|
|
43
|
+
Every page in this section is projected from a stored evidence bundle and does not restate it. The bundles are the source of truth: where the two disagree, the bundle is right and the projected page is stale. Each record page links to its own owning bundle; the whole published set starts here.
|
|
44
|
+
|
|
45
|
+
[Browse the raw agent resources](/docs/claude/)
|
|
46
|
+
|
|
47
|
+
## Sections
|
|
48
|
+
|
|
49
|
+
<CategoryNav category="components" />
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
# GENERATED by @takazudo/zudo-circuit-doc — do not edit; run `zudo-circuit-doc generate`
|
|
3
|
+
title: "Integration"
|
|
4
|
+
description: "Cross-component rules. None is currently published."
|
|
5
|
+
sidebar_position: 4
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Generated from the component evidence records — edit the records, not this page.
|
|
9
|
+
|
|
10
|
+
A component record answers questions about one part. These rules answer the ones that span several — whether a divider built from two resistors keeps a third part inside its own limit, whether a clamp event stays under everything downstream of it. Each rule is projected whole from stored evidence: its conditions, the exact facts it rests on, any conditioned arithmetic, and the exact wording of what it refuses to conclude.
|
|
11
|
+
|
|
12
|
+
## How to read these rules
|
|
13
|
+
|
|
14
|
+
- **The refusal is the rule.** — Every rule states, in its own words, what may NOT be concluded from the evidence above it. That sentence is the rule's real output; the verdict is shorthand for it.
|
|
15
|
+
- **A verdict belongs to the rule, not to a part.** — A rule's verdict says how far the cross-component question has been settled. It is never a judgement about any of the parts the rule names, and the verdicts are never combined into one.
|
|
16
|
+
- **Calculations are conditioned, and the conditions are the point.** — Each calculation publishes its expression, its inputs and the exact results that were recorded, together with the conditions under which the answer means anything. A result read without them is arithmetic mistaken for a measurement.
|
|
17
|
+
- **Numbers here were carried, not computed.** — The expressions are published so a reader can redo the arithmetic. This page does not evaluate them — the results shown are the ones the evidence recorded.
|
|
18
|
+
- **An evidence chain does not flow downhill.** — A stage being settled says nothing about any stage after it. A document confirming a limit is not a measurement of the assembled board.
|
|
19
|
+
|
|
20
|
+
## Rules at a glance
|
|
21
|
+
|
|
22
|
+
<EvidenceAnchor id="integration-index" />
|
|
23
|
+
|
|
24
|
+
No cross-component integration rule is declared.
|
|
25
|
+
|
|
26
|
+
## Legend
|
|
27
|
+
|
|
28
|
+
What the recorded terms on this page mean, in ordinary words. The exact terms above are the ones that count; these descriptions explain them and never replace them.
|
|
29
|
+
|
|
30
|
+
## Raw agent resource
|
|
31
|
+
|
|
32
|
+
These rules are generated from a stored evidence bundle and do not restate it. The bundle is the source of truth: where the two ever disagree, the bundle is right and this page is stale.
|
|
33
|
+
|
|
34
|
+
No owning bundle is identified in the published model, so no reciprocal link can be given.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
# GENERATED by @takazudo/zudo-circuit-doc — do not edit; run `zudo-circuit-doc generate`
|
|
3
|
+
title: "Records"
|
|
4
|
+
description: "Per-record evidence pages: facts, sources, coverage domains, pin maps and interactions."
|
|
5
|
+
sidebar_position: 3
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Generated from the component evidence records — edit the records, not this page.
|
|
9
|
+
|
|
10
|
+
One page per published component record, each carrying that record's facts, sources, coverage domains, pin maps and interactions. They are ordered as the bill of materials orders them, with each subordinate record directly after the part it belongs to.
|
|
11
|
+
|
|
12
|
+
To compare records against each other, start from the [catalog](/docs/components/catalog/).
|
|
13
|
+
|
|
14
|
+
No component record is published.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Decisions"
|
|
3
|
+
description: "Consequential design, component and sourcing choices, with alternatives and conditions."
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
No decision has been recorded yet.
|
|
8
|
+
|
|
9
|
+
For a consequential choice, copy `circuit/templates/project-docs/decisions/decision.mdx` into this directory with a topic-specific filename. For population and procurement choices, use `circuit/templates/project-docs/decisions/sourcing.mdx`. Keep superseded decisions and link them to the record that replaces them.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "How we work"
|
|
3
|
+
description: "The agent workflow this project follows, its templates and task examples, and where component evidence lives."
|
|
4
|
+
sidebar_position: 3
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This project is developed together with AI agents. Short requests such as "download this datasheet", "get the 3D model" or "check this spec" should leave durable, honest project knowledge behind: an exact identity, retained evidence, regenerated pages and a clear statement of what is still unknown.
|
|
8
|
+
|
|
9
|
+
## The canonical workflow
|
|
10
|
+
|
|
11
|
+
Every agent follows one file: `circuit/WORKFLOW.md`. The tool-specific entry files `CLAUDE.md` and `AGENTS.md` only point to it. It defines:
|
|
12
|
+
|
|
13
|
+
- **Shared entry:** read the [project brief](./index.mdx) and [next actions](./next-actions.mdx), run `pnpm circuit:check` before editing, and route every request by exact manufacturer, complete part number, order code and project role.
|
|
14
|
+
- **Seven workflows:** A, start a circuit; B, add or replace an exact component; C, find or download a datasheet or source; D, obtain a symbol, footprint and 3D model; E, verify a specification; F, record a bench result; G, handle a source or design change. Each ends with a stated "Done" criterion.
|
|
15
|
+
- **Integration rules and publication policy:** cross-component rules are added only when a real interaction exists, and publishing a record is an explicit, reviewable selection change.
|
|
16
|
+
- **A four-part completion report:** what was obtained or checked, the exact identity involved, what changed, and what remains with its reason.
|
|
17
|
+
|
|
18
|
+
## Where things live
|
|
19
|
+
|
|
20
|
+
| Kind of knowledge | Location | Edited by |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| Intent, rationale, decisions, plans, handoff | This site's Project, Architecture, Research, Decisions and Verification sections (`doc/src/content/docs/`) | People and agents |
|
|
23
|
+
| Exact component evidence: sources, facts, verdicts, coverage, pin maps | One owner bundle per component under `.claude/skills/component-*/` | Agents, following the evidence contract |
|
|
24
|
+
| Orderable identities and placements | `.claude/skills/component-spec-audit/references/inventory.json` | Agents |
|
|
25
|
+
| Cross-component rules | `.claude/skills/circuit-spec-integration/references/rules.json` | Agents |
|
|
26
|
+
| What is published | `circuit/publication/selection.json` and `circuit/publication/assets.json` | Agents, as a reviewed diff |
|
|
27
|
+
| Component catalog and record pages | The Components section, generated from the evidence | The generator only |
|
|
28
|
+
| Downloaded working copies of sources | `.circuit-cache/sources/` (not committed) | Agents |
|
|
29
|
+
|
|
30
|
+
The evidence records are authoritative. When a page in this site and an evidence record disagree, the record is correct and the page needs updating. Generated component pages are never edited by hand.
|
|
31
|
+
|
|
32
|
+
## Verdicts are explicit
|
|
33
|
+
|
|
34
|
+
Component facts carry one of six verdicts: `PASS - primary-source confirmed`, `CONFIRMED - distributor identity only`, `BLOCKER - deterministic spec violation`, `NEEDS BENCH`, `UNSOURCED` and `NOT APPLICABLE`. There is no single pass/fail badge. A clean validation or a covered domain is not hardware sign-off; physical checks are recorded as verification reports.
|
|
35
|
+
|
|
36
|
+
## Templates
|
|
37
|
+
|
|
38
|
+
Authoring templates live in `circuit/templates/` and are not published. Copy one into this site when its activity happens:
|
|
39
|
+
|
|
40
|
+
| Template | Use it for |
|
|
41
|
+
|---|---|
|
|
42
|
+
| `project-docs/project/task-request.mdx` | Delegating one bounded task to an agent |
|
|
43
|
+
| `project-docs/project/change-impact.mdx` | A change with downstream effects |
|
|
44
|
+
| `project-docs/architecture/interfaces.mdx` | Interface contracts, once blocks or connectors are proposed |
|
|
45
|
+
| `project-docs/research/component-candidate.mdx` | One component research question |
|
|
46
|
+
| `project-docs/decisions/decision.mdx` | One consequential choice |
|
|
47
|
+
| `project-docs/decisions/sourcing.mdx` | Population and procurement choices |
|
|
48
|
+
| `project-docs/verification/bring-up.mdx` | One verification plan or run |
|
|
49
|
+
| `cad-asset-receipt.json` | Recording where a CAD asset came from and how faithful it is |
|
|
50
|
+
|
|
51
|
+
The brief, next actions and architecture overview templates are already instantiated as live pages in this site. `circuit/templates/README.md` explains each template in detail.
|
|
52
|
+
|
|
53
|
+
## Task examples
|
|
54
|
+
|
|
55
|
+
`circuit/agent-task-examples.md` gives nine short requests in English and Japanese: download a datasheet, find and check a 3D model, verify a claimed specification, check an interaction, compare a replacement, implement a selected change, prepare a bring-up plan, turn bench observations into evidence, and continue the project from the handoff. Each names the workflow and commands it leads to.
|
|
56
|
+
|
|
57
|
+
## Commands
|
|
58
|
+
|
|
59
|
+
| Command | What it does |
|
|
60
|
+
|---|---|
|
|
61
|
+
| `pnpm dev` | Dev server, regenerating component pages as evidence changes |
|
|
62
|
+
| `pnpm build` | Publish selected models, generate component pages, build the site |
|
|
63
|
+
| `pnpm check` | Validate evidence and check that generated output is current |
|
|
64
|
+
| `pnpm check:site` | Post-build reference, publication and link checks |
|
|
65
|
+
| `pnpm circuit:check` | Validate the component evidence (offline) |
|
|
66
|
+
| `pnpm circuit:generate` | Regenerate the component pages |
|
|
67
|
+
| `pnpm circuit:doctor` | Report required and optional tools |
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Project brief"
|
|
3
|
+
description: "Purpose, intended behavior, constraints, and the current state of this circuit project."
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This is the project brief. Nothing has been entered yet. Describe the intended object and the experience of using it before selecting parts. Replace the prompts with project-specific statements as they become known.
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
| Field | Project statement |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Project name | Not entered |
|
|
14
|
+
| Intended user and setting | Not entered |
|
|
15
|
+
| What the object does | Not entered |
|
|
16
|
+
| Why this project exists | Not entered |
|
|
17
|
+
| What a successful first prototype demonstrates | Not entered |
|
|
18
|
+
| Current owner or maintainer | Not entered |
|
|
19
|
+
|
|
20
|
+
Write one short scenario: what the user connects, touches, or observes; what the object does in response; and how the session ends. State which behavior is essential and which is a later experiment.
|
|
21
|
+
|
|
22
|
+
## Scope and constraints
|
|
23
|
+
|
|
24
|
+
| Topic | Requirement or preference | Basis | Still unknown |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| Power source and operating environment | Not entered | Owner request or evidence reference | Not entered |
|
|
27
|
+
| Inputs, outputs and controls | Not entered | Owner request or evidence reference | Not entered |
|
|
28
|
+
| Physical size, mounting and appearance | Not entered | Owner request or evidence reference | Not entered |
|
|
29
|
+
| Assembly, sourcing and repair | Not entered | Owner request or evidence reference | Not entered |
|
|
30
|
+
| Budget and prototype quantity | Not entered | Owner request or dated estimate | Not entered |
|
|
31
|
+
| Firmware and development tools | Not entered | Owner preference or project decision | Not entered |
|
|
32
|
+
|
|
33
|
+
A desired behavior is a requirement; an assumed component capability is a claim that still needs evidence. Keep that distinction visible. Mark preferences separately from constraints that would make a design unacceptable.
|
|
34
|
+
|
|
35
|
+
## Current design state
|
|
36
|
+
|
|
37
|
+
| Item | Current reference |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Documentation revision reviewed | Not entered |
|
|
40
|
+
| Schematic or circuit specification revision | Not entered |
|
|
41
|
+
| PCB revision | Not entered |
|
|
42
|
+
| Firmware revision, if applicable | Not entered |
|
|
43
|
+
| Physical prototype or assembly ID | Not entered |
|
|
44
|
+
| Latest relevant verification report | Not entered |
|
|
45
|
+
|
|
46
|
+
Do not describe a schematic, PCB, firmware image, download, or physical prototype as present until it exists. When some representations are ahead of others, say which one describes the intended design and which one describes the built hardware.
|
|
47
|
+
|
|
48
|
+
## How to read this project
|
|
49
|
+
|
|
50
|
+
- [Next actions](./next-actions.mdx) is the entry point for continuing work.
|
|
51
|
+
- [How we work](./how-we-work.mdx) explains the agent workflow, the templates and where evidence lives.
|
|
52
|
+
- [Architecture](../architecture/overview.mdx) explains the functional blocks and operating states.
|
|
53
|
+
- [Research](../research/index.mdx), [Decisions](../decisions/index.mdx) and [Verification](../verification/index.mdx) hold component research, consequential choices and verification reports as they are written.
|
|
54
|
+
- The [component catalog](/docs/components/) is generated from the component evidence records.
|
|
55
|
+
|
|
56
|
+
Exact component identity, sourced facts, asset provenance, and generated catalog entries belong to the component evidence bundle. This page describes project intent and current state.
|
|
57
|
+
|
|
58
|
+
## Immediate next result
|
|
59
|
+
|
|
60
|
+
Describe one concrete result needed next, the uncertainty it resolves, and the artifact that will preserve the answer. Link the corresponding entry in [next actions](./next-actions.mdx) instead of maintaining two independent task lists.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Open questions and next actions"
|
|
3
|
+
description: "A concise handoff of current uncertainties, dependencies, and the next concrete work."
|
|
4
|
+
sidebar_position: 2
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This is the continuation point for the project. Keep it short enough that a new session can identify what to do next without rereading the whole archive. The project has just been created: no design work, component research or verification has been done yet.
|
|
8
|
+
|
|
9
|
+
## Current snapshot
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Snapshot date | Not entered |
|
|
14
|
+
| Current project goal | Not entered; see the [project brief](./index.mdx) |
|
|
15
|
+
| Design revision considered current | None exists yet |
|
|
16
|
+
| Latest completed result and its evidence | None |
|
|
17
|
+
| Most consequential remaining uncertainty | What the project is for; the brief is empty |
|
|
18
|
+
| Next result to produce | A filled project brief |
|
|
19
|
+
|
|
20
|
+
## Open questions
|
|
21
|
+
|
|
22
|
+
| Question ID | Exact question | Why the answer matters | Evidence needed | Owner or next task |
|
|
23
|
+
|---|---|---|---|---|
|
|
24
|
+
| Not assigned | What should this circuit do, for whom, and under which constraints? | Every later choice depends on it | The owner's description | Next action 1 |
|
|
25
|
+
|
|
26
|
+
Classify the needed work in plain language: source research, identity resolution, calculation, design choice, asset audit, supplier information, or physical measurement. This makes it clear whether another web lookup can answer the question or a bench test is required.
|
|
27
|
+
|
|
28
|
+
## Next actions
|
|
29
|
+
|
|
30
|
+
| Priority | Bounded action | Depends on | Concrete output | Completion condition |
|
|
31
|
+
|---|---|---|---|---|
|
|
32
|
+
| 1 | Fill the project brief from the owner's intent | The owner's description | An updated [project brief](./index.mdx) | Purpose and constraints are entered; unknowns are marked as unknown |
|
|
33
|
+
| 2 | Draft the functional blocks and operating states | Action 1 | An updated [architecture overview](../architecture/overview.mdx) | Blocks are described by responsibility, without unselected part numbers |
|
|
34
|
+
| 3 | Choose the first component question to research | Action 2 | A research page in [Research](../research/index.mdx) and an updated table here | One bounded research question with its criteria |
|
|
35
|
+
|
|
36
|
+
Prefer actions with a visible result, such as retaining an exact document, mapping one connector, checking a model dimension, or producing one test report. “Investigate everything” gives the next agent no stopping point.
|
|
37
|
+
|
|
38
|
+
## Blocked work
|
|
39
|
+
|
|
40
|
+
| Blocked task | Missing prerequisite | Work that can continue meanwhile | Revisit when |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| No task entered | Not entered | Not entered | Not entered |
|
|
43
|
+
|
|
44
|
+
Record the actual blocker. A failed download, missing hardware, unconfirmed identity, undecided requirement, and unavailable tool are different problems and require different follow-up.
|
|
45
|
+
|
|
46
|
+
## Recently resolved or reopened
|
|
47
|
+
|
|
48
|
+
| Question or action | New state | Evidence or decision reference | Pages or records updated |
|
|
49
|
+
|---|---|---|---|
|
|
50
|
+
| No entry | Not entered | Not entered | Not entered |
|
|
51
|
+
|
|
52
|
+
Move a question here only with its supporting reference. A newer analysis can reopen a previously settled point; preserve both the earlier basis and the reason it no longer closes the question.
|
|
53
|
+
|
|
54
|
+
## Handoff to the next session
|
|
55
|
+
|
|
56
|
+
Read the [project brief](./index.mdx) and this page, run `pnpm circuit:check`, then start next action 1. The expected artifact is a filled brief. For a larger delegation, copy the task-request template described in [How we work](./how-we-work.mdx).
|
|
57
|
+
|
|
58
|
+
When updating this page, remove stale imperative tasks that are already completed, keep historical work in its original decision or verification record, and carry forward only unresolved dependencies.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Research"
|
|
3
|
+
description: "Bounded component and design research, with criteria, linked evidence and open gaps."
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
No research has been recorded yet.
|
|
8
|
+
|
|
9
|
+
To start one, copy `circuit/templates/project-docs/research/component-candidate.mdx` into this directory with a topic-specific filename, title and `sidebar_position`, and fill it as the research happens. A research page explains the question, the criteria and what the evidence establishes; exact identity, sources and facts go into the component evidence records. Candidates stay out of the inventory until one is selected.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Verification"
|
|
3
|
+
description: "Verification plans and execution reports, each tied to one revision and configuration."
|
|
4
|
+
sidebar_position: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
No verification has been planned or performed yet.
|
|
8
|
+
|
|
9
|
+
For each plan or run, copy `circuit/templates/project-docs/verification/bring-up.mdx` into this directory with a filename that identifies the build and the run. A report starts as a plan and records observations only after they are made; a later successful run never overwrites an earlier failure.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* Cascade layers: preflight → flow → (unlayered utilities). Tokens/base rules
|
|
2
|
+
ship from @takazudo/zudo-doc/theme.css.
|
|
3
|
+
NOTE: the `@takazudo/zdtp/styles.css` import is intentionally NOT here —
|
|
4
|
+
it is inserted right after the @layer line above, ONLY when
|
|
5
|
+
designTokenPanel is selected (see features/design-token-panel.ts). It
|
|
6
|
+
can't ship unconditionally because it pulls in zdtp's own bytes. */
|
|
7
|
+
@layer zd-preflight, zd-flow;
|
|
8
|
+
@import "tailwindcss/preflight" layer(zd-preflight);
|
|
9
|
+
@import "tailwindcss/utilities";
|
|
10
|
+
|
|
11
|
+
/* Package-shipped tokens, safelist, content typography, and feature CSS.
|
|
12
|
+
Order is load-bearing — theme.css MUST precede features.css. Do not reorder. */
|
|
13
|
+
@import "@takazudo/zudo-doc/theme.css";
|
|
14
|
+
@import "@takazudo/zudo-doc/safelist.css";
|
|
15
|
+
@import "@takazudo/zudo-doc/content.css";
|
|
16
|
+
@import "@takazudo/zudo-doc/page-loading.css";
|
|
17
|
+
@import "@takazudo/zudo-doc/features.css";
|
|
18
|
+
|
|
19
|
+
/* ADR-015: the package's unlayered styles, imported after the zudo-doc CSS. */
|
|
20
|
+
@import "@takazudo/zudo-circuit-doc/styles.css";
|
|
21
|
+
|
|
22
|
+
/* Scan this project's own source for Tailwind utility classes. */
|
|
23
|
+
@source "src/content/**/*.{mdx,md}";
|
|
24
|
+
@source "src/components/**/*.{tsx,ts,jsx,js}";
|
|
25
|
+
@source "pages/**/*.{tsx,ts,jsx,js}";
|
|
26
|
+
|
|
27
|
+
/* ── Your token overrides ──────────────────────────────────────────────
|
|
28
|
+
Override any default @theme token from @takazudo/zudo-doc/theme.css here. */
|
|
29
|
+
@theme {
|
|
30
|
+
/* e.g. --color-accent: oklch(0.6 0.2 250); */
|
|
31
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@takazudo/zudo-doc/tsconfig.base.json",
|
|
3
|
+
"include": ["src", "pages", "zfb.config.ts"],
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"baseUrl": ".",
|
|
6
|
+
"paths": {
|
|
7
|
+
"@/*": ["src/*"],
|
|
8
|
+
"react": ["./node_modules/preact/compat/"],
|
|
9
|
+
"react/jsx-runtime": ["./node_modules/preact/jsx-runtime"],
|
|
10
|
+
"react-dom": ["./node_modules/preact/compat/"]
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { defineConfig } from "zfb/config";
|
|
2
|
+
import { zudoDoc } from "@takazudo/zudo-doc/config";
|
|
3
|
+
|
|
4
|
+
// The one config file for this project's doc site (@takazudo/zudo-doc). It
|
|
5
|
+
// must stay free of `node:*` imports and must not import `circuit.config.ts`
|
|
6
|
+
// (epic #1 Config contract, item 4): `zfb.config.ts` is evaluated through
|
|
7
|
+
// esbuild with `--platform=neutral`, a graph the circuit config never joins.
|
|
8
|
+
const site = zudoDoc({
|
|
9
|
+
siteName: "__SITE_TITLE__",
|
|
10
|
+
// Required by the v1 asset URLs (FOOTPRINT_ASSET_BASE / MODEL_ASSET_BASE
|
|
11
|
+
// in the package are root-absolute) — this already is the default, kept
|
|
12
|
+
// explicit so it is never accidentally changed.
|
|
13
|
+
base: "/",
|
|
14
|
+
// ADR-020: templates set the locale explicitly.
|
|
15
|
+
defaultLocale: "en",
|
|
16
|
+
themePacks: ["default"],
|
|
17
|
+
llmsTxt: true,
|
|
18
|
+
cjkFriendly: true,
|
|
19
|
+
dynamicPageTransition: true,
|
|
20
|
+
docHistory: true,
|
|
21
|
+
// The generated component catalog is regenerated from evidence, not
|
|
22
|
+
// hand-edited, so it carries no useful edit history of its own.
|
|
23
|
+
docHistoryExclude: ["components", "components/**"],
|
|
24
|
+
assetViewer: true,
|
|
25
|
+
strictContentBridge: true,
|
|
26
|
+
// ADR-016: ingest this project's `.claude/` tree (one level up from this
|
|
27
|
+
// zfb project) so `/docs/claude/` and `/docs/claude-skills/<owner>/`
|
|
28
|
+
// render the raw agent resources the generated pages link back to.
|
|
29
|
+
claudeResources: { claudeDir: "../.claude", scanRoot: ".." },
|
|
30
|
+
// These routes exist only for the default docsDir and never inside an
|
|
31
|
+
// archived version directory; this project has no `versions` config, but
|
|
32
|
+
// the prefixes stay explicit so a later version addition does not 404 them.
|
|
33
|
+
defaultLocaleOnlyPrefixes: [
|
|
34
|
+
"/docs/components/",
|
|
35
|
+
"/docs/claude/",
|
|
36
|
+
"/docs/claude-md/",
|
|
37
|
+
"/docs/claude-skills/",
|
|
38
|
+
"/docs/claude-agents/",
|
|
39
|
+
"/docs/claude-commands/",
|
|
40
|
+
],
|
|
41
|
+
chromeBindingsModule: "./src/chrome-bindings.tsx",
|
|
42
|
+
headerNav: [
|
|
43
|
+
{ label: "Project", path: "/docs/project", categoryMatch: "project" },
|
|
44
|
+
{ label: "Architecture", path: "/docs/architecture", categoryMatch: "architecture" },
|
|
45
|
+
{ label: "Research", path: "/docs/research", categoryMatch: "research" },
|
|
46
|
+
{ label: "Decisions", path: "/docs/decisions", categoryMatch: "decisions" },
|
|
47
|
+
{ label: "Verification", path: "/docs/verification", categoryMatch: "verification" },
|
|
48
|
+
{
|
|
49
|
+
label: "Components",
|
|
50
|
+
path: "/docs/components",
|
|
51
|
+
categoryMatch: "components",
|
|
52
|
+
children: [
|
|
53
|
+
{ label: "Catalog & Records", path: "/docs/components", categoryMatch: "components" },
|
|
54
|
+
{ label: "Raw agent resources", path: "/docs/claude", categoryMatch: "claude", versioned: false },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
headerRightItems: [
|
|
59
|
+
{ type: "component", component: "theme-toggle" },
|
|
60
|
+
{ type: "component", component: "search" },
|
|
61
|
+
],
|
|
62
|
+
footer: {
|
|
63
|
+
links: [],
|
|
64
|
+
copyright: "Built with zudo-circuit-doc on zudo-doc.",
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// zfb's source-level `linkValidation` (which zudoDoc() switches on) only sees
|
|
69
|
+
// anchor ids written as a literal `id` on an intrinsic element, never the id a
|
|
70
|
+
// component such as the generated pages' `<EvidenceAnchor>` renders — so it
|
|
71
|
+
// warned "broken link: #fact-…" / "#src-…" for every in-page evidence link
|
|
72
|
+
// (#52, #68). The built-HTML scan in `pnpm check:site` (`check:links
|
|
73
|
+
// --strict-anchors --strict-broken`) sees rendered ids and checks every page,
|
|
74
|
+
// and `resolveMarkdownLinks` still warns on unresolvable `.md` links, so the
|
|
75
|
+
// source-level check adds nothing but noise here.
|
|
76
|
+
delete site.markdown?.features?.linkValidation;
|
|
77
|
+
|
|
78
|
+
export default defineConfig(site);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__PROJECT_NAME__",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"packageManager": "pnpm@11.5.2",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=22.18.0"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"dev": "pnpm --dir doc dev",
|
|
12
|
+
"build": "zudo-circuit-doc models && zudo-circuit-doc generate && pnpm --dir doc build",
|
|
13
|
+
"check": "zudo-circuit-doc check && pnpm --dir doc check",
|
|
14
|
+
"circuit:check": "zudo-circuit-doc validate",
|
|
15
|
+
"circuit:generate": "zudo-circuit-doc generate",
|
|
16
|
+
"circuit:doctor": "zudo-circuit-doc doctor",
|
|
17
|
+
"check:site": "zudo-circuit-doc check-built && zudo-circuit-doc scan && pnpm --dir doc check:links -- --strict-anchors --strict-broken",
|
|
18
|
+
"previews:generate": "zudo-circuit-doc footprints generate"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@takazudo/zudo-circuit-doc": "^0.1.0"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
packages: ["doc"]
|
|
2
|
+
# pnpm 11 defaults minimumReleaseAge to 1440min. The exclude matcher can't
|
|
3
|
+
# match a fresh install's peer-nested lockfile keys (upstream pnpm bug), the
|
|
4
|
+
# same reason create-zudo-doc 5.27.0's own scaffold disables the gate
|
|
5
|
+
# outright instead of excluding specific packages. Revisit once that's fixed
|
|
6
|
+
# and this project is ready to publish.
|
|
7
|
+
minimumReleaseAge: 0
|
|
8
|
+
allowBuilds:
|
|
9
|
+
esbuild: true
|