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,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"receipt_version": 1,
|
|
3
|
+
"identity": {
|
|
4
|
+
"asset_id": null,
|
|
5
|
+
"record_id": null,
|
|
6
|
+
"manufacturer": null,
|
|
7
|
+
"mpn": null,
|
|
8
|
+
"package": null,
|
|
9
|
+
"variant_notes": null
|
|
10
|
+
},
|
|
11
|
+
"acquisition": {
|
|
12
|
+
"provider": null,
|
|
13
|
+
"library_release_tag": null,
|
|
14
|
+
"source_url": null,
|
|
15
|
+
"acquired_on": null,
|
|
16
|
+
"original_filenames": [],
|
|
17
|
+
"sha256": {}
|
|
18
|
+
},
|
|
19
|
+
"representation": {
|
|
20
|
+
"files": [],
|
|
21
|
+
"formats": [],
|
|
22
|
+
"units": null,
|
|
23
|
+
"original_paths": []
|
|
24
|
+
},
|
|
25
|
+
"fidelity": {
|
|
26
|
+
"class": null,
|
|
27
|
+
"reason": null,
|
|
28
|
+
"evidence": []
|
|
29
|
+
},
|
|
30
|
+
"derivation": {
|
|
31
|
+
"derived": false,
|
|
32
|
+
"input_sha256": {},
|
|
33
|
+
"tool": null,
|
|
34
|
+
"tool_version": null,
|
|
35
|
+
"parameters": {},
|
|
36
|
+
"output_sha256": {}
|
|
37
|
+
},
|
|
38
|
+
"cad_use": {
|
|
39
|
+
"symbol": null,
|
|
40
|
+
"footprint": null,
|
|
41
|
+
"model_path": null,
|
|
42
|
+
"transform": {
|
|
43
|
+
"offset": null,
|
|
44
|
+
"rotation": null,
|
|
45
|
+
"scale": null
|
|
46
|
+
},
|
|
47
|
+
"seating_plane": null
|
|
48
|
+
},
|
|
49
|
+
"checks": {
|
|
50
|
+
"performed": [],
|
|
51
|
+
"remaining_physical_checks": []
|
|
52
|
+
},
|
|
53
|
+
"publication": {
|
|
54
|
+
"preview_selected": false,
|
|
55
|
+
"download_published": false,
|
|
56
|
+
"permitted_scope": null
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CAD asset receipt
|
|
2
|
+
|
|
3
|
+
A receipt records what an acquired symbol, footprint or 3D model actually is, where it came from and what has been checked. It is a sidecar next to the v1 evidence: it does not change the owner bundle's schema, and the validator does not read it.
|
|
4
|
+
|
|
5
|
+
Write one receipt per acquired asset set as `circuit/cad-receipts/ASSET_ID.receipt.json`, starting from [cad-asset-receipt.json](./cad-asset-receipt.json). Copy this Markdown form beside it only when the JSON needs a longer explanation. Leave a field `null` until you know it; never fill a field with a guess.
|
|
6
|
+
|
|
7
|
+
## Field groups
|
|
8
|
+
|
|
9
|
+
| Group | Fields | What to enter |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Identity | `asset_id`, `record_id`, `manufacturer`, `mpn`, `package`, `variant_notes` | The exact orderable variant the asset is meant to represent, and the owner record ID |
|
|
12
|
+
| Acquisition | `provider`, `library_release_tag`, `source_url`, `acquired_on`, `original_filenames`, `sha256` | Where the files came from, the pinned library release tag (for KiCad official libraries), the date, the unmodified filenames and one SHA-256 per file |
|
|
13
|
+
| Representation | `files`, `formats`, `units`, `original_paths` | The formats kept (symbol, footprint, STEP, WRL, other), their units and where the originals are kept |
|
|
14
|
+
| Fidelity | `class`, `reason`, `evidence` | One of `exact-vendor`, `family`, `derived`, `unavailable`, with the reason and the evidence that supports the label |
|
|
15
|
+
| Derivation | `derived`, `input_sha256`, `tool`, `tool_version`, `parameters`, `output_sha256` | Only for a derived asset: the inputs, the deterministic transformation and the outputs |
|
|
16
|
+
| CAD use | `symbol`, `footprint`, `model_path`, `transform`, `seating_plane` | How the footprint references the model, and the offset, rotation and scale applied |
|
|
17
|
+
| Checks | `performed`, `remaining_physical_checks` | Each check actually done with its method and evidence (pin/pad numbering, pitch, body envelope, pin 1), and what still needs physical verification |
|
|
18
|
+
| Publication | `preview_selected`, `download_published`, `permitted_scope` | Whether a preview is selected in `circuit/publication/selection.json`, whether a file is listed in `circuit/publication/assets.json`, and the redistribution scope |
|
|
19
|
+
|
|
20
|
+
## Fidelity classes
|
|
21
|
+
|
|
22
|
+
| Class | Use it when |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| `exact-vendor` | The manufacturer published the asset for this exact orderable variant |
|
|
25
|
+
| `family` | The asset represents the package or series and is not proven for this variant |
|
|
26
|
+
| `derived` | The asset was produced from an original by a recorded transformation |
|
|
27
|
+
| `unavailable` | No usable asset exists; the state is documented and nothing is fabricated |
|
|
28
|
+
|
|
29
|
+
## Limits to state in every receipt
|
|
30
|
+
|
|
31
|
+
- A rendered preview is not dimensional proof.
|
|
32
|
+
- A footprint that imports cleanly does not prove pin correspondence.
|
|
33
|
+
- Model geometry does not prove physical seating, clearance or solderability; list those as remaining physical checks until they are observed.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Interfaces and connections"
|
|
3
|
+
description: "Explicit boundaries between circuit blocks, external devices, firmware, and mechanical parts."
|
|
4
|
+
sidebar_position: 20
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This page explains interface contracts for the [architecture](./overview.mdx). Populate only interfaces that exist or are actively proposed. It is not a generated pin catalog.
|
|
8
|
+
|
|
9
|
+
## Interface inventory
|
|
10
|
+
|
|
11
|
+
| Interface ID | Endpoint A | Endpoint B | Purpose | Intended representation | Current status |
|
|
12
|
+
|---|---|---|---|---|---|
|
|
13
|
+
| Not entered | Not entered | Not entered | Not entered | Schematic, cable drawing, firmware API, or mechanical drawing | Unspecified |
|
|
14
|
+
|
|
15
|
+
Identify whether each connection is internal, external, removable, accessible during service, or part of a test fixture. State its direction from a named endpoint so “input” and “output” are unambiguous.
|
|
16
|
+
|
|
17
|
+
## Electrical and configuration contract
|
|
18
|
+
|
|
19
|
+
For each interface, describe the following in a small section or a linked canonical integration record:
|
|
20
|
+
|
|
21
|
+
| Question | Project answer | Evidence or design reference |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| What carries energy, signal, reference, or shielding? | Not entered | Not entered |
|
|
24
|
+
| Which side supplies power or drives each signal? | Not entered | Not entered |
|
|
25
|
+
| Which operating conditions must both endpoints tolerate? | Not entered | Not entered |
|
|
26
|
+
| What happens if only one endpoint is powered? | Not entered | Not entered |
|
|
27
|
+
| What are the startup, reset, and disconnected states? | Not entered | Not entered |
|
|
28
|
+
| Are external pulls, termination, or configuration required? | Not entered | Not entered |
|
|
29
|
+
| Does programming or service equipment create another power path? | Not entered | Not entered |
|
|
30
|
+
| Which conditions remain unproven? | Not entered | Not entered |
|
|
31
|
+
|
|
32
|
+
Write project-specific requirements here and link exact pin functions, thresholds, defaults, and ratings to the component evidence bundle. If a circuit condition combines several components, link the integration calculation or rule that covers those components together.
|
|
33
|
+
|
|
34
|
+
## Connector and cable mapping
|
|
35
|
+
|
|
36
|
+
| Mapping subject | What must be recorded |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Physical identification | Exact connector and mating-part records, keying, orientation and pin-1 reference |
|
|
39
|
+
| View convention | Mating face, cable side, component top, or board side; include a drawing when needed |
|
|
40
|
+
| Electrical mapping | Connector terminal, schematic pin, footprint pad, and intended net reference |
|
|
41
|
+
| Cable construction | Endpoint-to-endpoint mapping, conductor identification and assembly revision |
|
|
42
|
+
| Verification | Continuity or orientation report for the actual assembly, when performed |
|
|
43
|
+
|
|
44
|
+
A model that visually mates and a footprint that imports successfully do not establish numeric pin correspondence. Keep visual fit, numeric mapping, electrical compatibility, and observed continuity as separately traceable checks.
|
|
45
|
+
|
|
46
|
+
## Mechanical and firmware boundaries
|
|
47
|
+
|
|
48
|
+
Record the project constraints that cross disciplines: component height, mounting datum, actuator travel, insertion direction, finger clearance, enclosure opening, sensor location, firmware pin assignment, initialization order, and any persistent configuration. Do not copy a full mechanical drawing into prose; link the asset and its dimensional audit.
|
|
49
|
+
|
|
50
|
+
## Change triggers
|
|
51
|
+
|
|
52
|
+
Name changes that require revisiting this contract. Common examples are a new package variant, different mating connector, board-side mounting change, changed signal direction, different default configuration, or an altered service connection. Use a [change-impact note](../project/change-impact.mdx) when applying one of these changes.
|
|
@@ -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 an architecture proposal. No topology, component, board split, power source, or operating limit has been chosen by this template.
|
|
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](./interfaces.mdx).
|
|
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/decision.mdx). Keep the architecture page current and preserve the historical reasoning in the decision.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Decision record"
|
|
3
|
+
description: "The context, alternatives, evidence, tradeoffs, and validity conditions of one consequential choice."
|
|
4
|
+
sidebar_position: 10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Duplicate this page for one consequential choice. This is an unfilled decision template; it records no accepted design or component selection.
|
|
8
|
+
|
|
9
|
+
## Record
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Decision ID | Not assigned |
|
|
14
|
+
| Topic | Not entered |
|
|
15
|
+
| State | Draft; no decision recorded |
|
|
16
|
+
| Decision date | Not entered |
|
|
17
|
+
| Decision maker | Not entered |
|
|
18
|
+
| Applicable project revision | Not entered |
|
|
19
|
+
| Replaces or is replaced by | Not entered |
|
|
20
|
+
|
|
21
|
+
Use a visible state such as proposed, accepted, rejected, or superseded when the actual decision exists. These are decision lifecycle terms, not assertions that the underlying hardware has passed verification.
|
|
22
|
+
|
|
23
|
+
## Context
|
|
24
|
+
|
|
25
|
+
Describe the concrete problem and why it needs a decision now. Link the relevant requirements, research notes, canonical component evidence, and integration calculations. State any constraint supplied by the project owner that materially changes the choice.
|
|
26
|
+
|
|
27
|
+
## Alternatives considered
|
|
28
|
+
|
|
29
|
+
| Alternative | Why it could work | Decisive tradeoff | Evidence still needed | Disposition |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| No alternative entered | Not entered | Not entered | Not entered | Unreviewed |
|
|
32
|
+
|
|
33
|
+
An alternative can be a component, topology, control behavior, board partition, assembly method, or a decision to defer work. “Not selected” should explain which criterion mattered; it should not imply that the alternative is generally unsuitable.
|
|
34
|
+
|
|
35
|
+
## Decision
|
|
36
|
+
|
|
37
|
+
State exactly what is adopted and what scope it covers. If conditional, name each condition. Link the selected exact component record rather than relying on a family name, short description, or package label.
|
|
38
|
+
|
|
39
|
+
For a design change, identify the intended authoritative representation to update, such as a circuit specification or schematic. A recorded decision and an implemented design are separate states.
|
|
40
|
+
|
|
41
|
+
## Reasoning
|
|
42
|
+
|
|
43
|
+
Explain the most important tradeoff first. Include the relevant uncertainty and the strongest reason another option could have been chosen. Numeric claims should link to canonical facts or calculations with their qualifiers and conditions preserved.
|
|
44
|
+
|
|
45
|
+
## Consequences and follow-up
|
|
46
|
+
|
|
47
|
+
| Consequence | Required update or verification | Owner or next-action reference |
|
|
48
|
+
|---|---|---|
|
|
49
|
+
| Not entered | Not entered | Not entered |
|
|
50
|
+
|
|
51
|
+
Consider affected architecture, interfaces, firmware, mechanical fit, documentation, sourcing, and verification. A part substitution may require more than replacing a row in a BOM. Link a [change-impact note](../project/change-impact.mdx) if downstream effects are material.
|
|
52
|
+
|
|
53
|
+
## What could reopen this decision
|
|
54
|
+
|
|
55
|
+
Record observable triggers: a contradicted fact, unavailable exact part, changed operating envelope, package mismatch, failed test, changed requirement, or revised cost assumption. Where the basis is a dated stock observation, give the recheck event.
|
|
56
|
+
|
|
57
|
+
When superseding a decision, keep the old rationale and add a link to the new record. Update current architecture and next actions so the historical choice is no longer presented as current.
|
|
58
|
+
|
|
59
|
+
## Implementation and verification references
|
|
60
|
+
|
|
61
|
+
| Item | Reference and present state |
|
|
62
|
+
|---|---|
|
|
63
|
+
| Intended change | Not entered |
|
|
64
|
+
| Implemented revision | Not entered |
|
|
65
|
+
| Evidence refresh | Not entered |
|
|
66
|
+
| Verification report | Not entered |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "BOM and sourcing decisions"
|
|
3
|
+
description: "Population policy, assembly choices, dated supply observations, and procurement rationale."
|
|
4
|
+
sidebar_position: 20
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This page explains procurement and population choices. It is not a manually maintained replacement for the canonical component inventory or a generated assembly BOM. No order, quote, stock check, or assembly plan exists by virtue of this template.
|
|
8
|
+
|
|
9
|
+
## Intended build
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Build or prototype ID | Not assigned |
|
|
14
|
+
| Design revision being considered | Not entered |
|
|
15
|
+
| Quantity and purpose | Not entered |
|
|
16
|
+
| Assembly method or provider | Not entered |
|
|
17
|
+
| Required delivery date, if any | Not entered |
|
|
18
|
+
| Applicable generated BOM and placement outputs | Not generated or not entered |
|
|
19
|
+
| Quote reference and observation date | Not obtained or not entered |
|
|
20
|
+
|
|
21
|
+
## Population policy
|
|
22
|
+
|
|
23
|
+
Describe how this project distinguishes fitted assembly parts, hand-fitted parts, intentionally unpopulated positions, test-only features, and geometry with no purchased part. Record population per placement in the inventory (`dnp`, `mounting`) and explain the reasoning here.
|
|
24
|
+
|
|
25
|
+
| Design feature or placement reference | Intended population | Reason | Design or decision reference |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
| Not entered | Not decided | Not entered | Not entered |
|
|
28
|
+
|
|
29
|
+
Population belongs to a particular design revision or build variant. The same component may be fitted in one build and omitted in another. Do not encode the project's selection by modifying a shared generic footprint's supplier identity.
|
|
30
|
+
|
|
31
|
+
## Sourcing observations
|
|
32
|
+
|
|
33
|
+
| Component record | Supplier observation reference | Checked at | Quantity or assembly assumption | Recheck trigger |
|
|
34
|
+
|---|---|---|---|---|
|
|
35
|
+
| No component entered | Not obtained | Not entered | Not entered | Not entered |
|
|
36
|
+
|
|
37
|
+
Store exact part mapping, observed stock, pricing, tier, currency, and source provenance in the component evidence bundle (inventory `suppliers` entries are display-only order codes). This page explains why those observations matter to the build. A dated observation does not reserve parts or establish that the assembler supports the intended process.
|
|
38
|
+
|
|
39
|
+
## Cost reasoning
|
|
40
|
+
|
|
41
|
+
Explain which costs drive the decision: parts, setup charges, minimum quantities, board runs, tooling, manual assembly, shipping, or rework. Link a dated estimate or quote and identify the quantity and assumptions behind it.
|
|
42
|
+
|
|
43
|
+
If changing the build arrangement is expected to reduce cost, describe the new constraints it creates. Preserve the difference between a rough estimate, a supplier quotation, and a completed purchase.
|
|
44
|
+
|
|
45
|
+
## Alternate parts and unavailable items
|
|
46
|
+
|
|
47
|
+
| Affected component | Procurement problem | Candidate alternative record | Compatibility work required | Decision reference |
|
|
48
|
+
|---|---|---|---|---|
|
|
49
|
+
| Not entered | Not entered | Not researched | Not assessed | Not entered |
|
|
50
|
+
|
|
51
|
+
A similar label, package, or catalog number is a candidate for investigation. Evaluate exact identity, pin mapping, ratings under applicable conditions, behavior, mechanical fit, firmware implications, and assembly compatibility before treating it as a replacement.
|
|
52
|
+
|
|
53
|
+
## Build reconciliation
|
|
54
|
+
|
|
55
|
+
Before an order or handoff is prepared, record which source revision produced the BOM and placement data, how population exclusions were handled, and whether the exported identities match the intended placements. If orientation or assembler conventions apply, link their explicit review rather than assuming the preview proves all fields.
|
|
56
|
+
|
|
57
|
+
Save each order or manufacturing handoff against its own revision. Changes after ordering belong in a new change note, not in a silently revised description of the ordered assembly.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Change-impact note"
|
|
3
|
+
description: "The intended scope, dependencies, evidence changes, and verification of one proposed design update."
|
|
4
|
+
sidebar_position: 20
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Use this note when a change may invalidate evidence, derived files, or prior test results. It starts as an unfilled proposal. The note itself does not imply that the change has been applied.
|
|
8
|
+
|
|
9
|
+
## Change identity
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Change ID | Not assigned |
|
|
14
|
+
| Requested outcome | Not entered |
|
|
15
|
+
| Reason for the change | Not entered |
|
|
16
|
+
| Baseline revision | Not entered |
|
|
17
|
+
| Scope already requested by the owner | Not entered |
|
|
18
|
+
| Present state | Proposal not yet specified |
|
|
19
|
+
| Related decision | Not entered |
|
|
20
|
+
|
|
21
|
+
Describe the resulting behavior, not just a file edit. For a component replacement, identify both exact component records and every affected placement. For a footprint change, distinguish corrected geometry from a new physical part.
|
|
22
|
+
|
|
23
|
+
## Impact map
|
|
24
|
+
|
|
25
|
+
| Area | Relevant object or record | Expected effect | Required follow-up | Present state |
|
|
26
|
+
|---|---|---|---|---|
|
|
27
|
+
| Component identity and facts | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
28
|
+
| Cross-component calculations and interfaces | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
29
|
+
| Schematic or circuit specification | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
30
|
+
| Footprint, model and mechanical fit | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
31
|
+
| Firmware or stored configuration | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
32
|
+
| BOM, placement and assembly outputs | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
33
|
+
| Generated catalog and previews | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
34
|
+
| Authored rationale and prior verification | Not assessed | Not assessed | Not assessed | Unreviewed |
|
|
35
|
+
|
|
36
|
+
Mark an area unaffected only after considering the actual dependency. A same-package substitution can still change behavior or limits; a source correction can change a conclusion without changing the physical circuit.
|
|
37
|
+
|
|
38
|
+
## Evidence that becomes stale
|
|
39
|
+
|
|
40
|
+
Identify source records, project-state hashes, derived assets, calculations, or measurements tied to the baseline. State which remain valid, which require regeneration, and which need another test. Preserve the old evidence with its old revision instead of relabeling it as current.
|
|
41
|
+
|
|
42
|
+
If a claim was previously presented as settled, explicitly state why the change reopens it. Update the current narrative wherever it still relies on the old conclusion.
|
|
43
|
+
|
|
44
|
+
## Implementation sequence
|
|
45
|
+
|
|
46
|
+
Describe the source edits and dependent regeneration in order. Use only the commands listed in `circuit/WORKFLOW.md`. Name the authoritative input before its generated outputs.
|
|
47
|
+
|
|
48
|
+
Record any required local validation, preview review, or hardware verification along with the result it is meant to establish. An asset can render successfully while its dimensions or pin mapping remain unverified.
|
|
49
|
+
|
|
50
|
+
## Completion record
|
|
51
|
+
|
|
52
|
+
| Item | Reference and outcome |
|
|
53
|
+
|---|---|
|
|
54
|
+
| Applied source revision | Not applied or not entered |
|
|
55
|
+
| Updated evidence records | Not entered |
|
|
56
|
+
| Regenerated outputs | Not generated or not entered |
|
|
57
|
+
| Validation or review results | Not run |
|
|
58
|
+
| Hardware verification | Not run |
|
|
59
|
+
| Remaining open questions | Not entered |
|
|
60
|
+
|
|
61
|
+
If the work reveals a materially different design choice, record the new choice and the information needed to decide it. Continue work already within the requested scope; do not turn routine documentation updates into repeated permission requests.
|
|
@@ -0,0 +1,62 @@
|
|
|
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 page is an unfilled project brief. 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
|
+
- [Architecture](../architecture/overview.mdx) explains the functional blocks and operating states.
|
|
51
|
+
- [Interfaces](../architecture/interfaces.mdx) defines the boundaries those blocks must agree on.
|
|
52
|
+
- [Component research](../research/component-candidate.mdx) records candidate reasoning and links to the component evidence bundle.
|
|
53
|
+
- [Decisions](../decisions/decision.mdx) records consequential choices and their conditions.
|
|
54
|
+
- [Sourcing](../decisions/sourcing.mdx) explains population and procurement choices.
|
|
55
|
+
- [Verification](../verification/bring-up.mdx) records what was planned, what was performed, and what was observed.
|
|
56
|
+
- [Next actions](./next-actions.mdx) is the entry point for continuing work.
|
|
57
|
+
|
|
58
|
+
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.
|
|
59
|
+
|
|
60
|
+
## Immediate next result
|
|
61
|
+
|
|
62
|
+
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 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: 10
|
|
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. This template contains no completed work or resolved questions.
|
|
8
|
+
|
|
9
|
+
## Current snapshot
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Snapshot date | Not entered |
|
|
14
|
+
| Current project goal | Not entered |
|
|
15
|
+
| Design revision considered current | Not entered |
|
|
16
|
+
| Latest completed result and its evidence | Not entered |
|
|
17
|
+
| Most consequential remaining uncertainty | Not entered |
|
|
18
|
+
| Next result to produce | Not entered |
|
|
19
|
+
|
|
20
|
+
Link the [project brief](./index.mdx) for requirements and the authoritative design files for the actual implementation state. Avoid duplicating full specifications here.
|
|
21
|
+
|
|
22
|
+
## Open questions
|
|
23
|
+
|
|
24
|
+
| Question ID | Exact question | Why the answer matters | Evidence needed | Owner or next task |
|
|
25
|
+
|---|---|---|---|---|
|
|
26
|
+
| Not assigned | Not entered | Not entered | Not entered | Not entered |
|
|
27
|
+
|
|
28
|
+
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.
|
|
29
|
+
|
|
30
|
+
## Next actions
|
|
31
|
+
|
|
32
|
+
| Priority | Bounded action | Depends on | Concrete output | Completion condition |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
| Not assigned | Not entered | Not entered | Not entered | Not entered |
|
|
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. Do not leave “resolved” elsewhere if the canonical evidence remains missing or conditional.
|
|
53
|
+
|
|
54
|
+
## Handoff to the next session
|
|
55
|
+
|
|
56
|
+
Write a short paragraph containing the current goal, the minimum references to read, the exact next task, and the artifact expected at completion. Use the [task-request template](./task-request.mdx) for a larger delegation.
|
|
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,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Agent task request"
|
|
3
|
+
description: "A reusable brief for a bounded component, documentation, asset, or verification task."
|
|
4
|
+
sidebar_position: 30
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Copy the useful sections of this page into a request to a local AI agent. Fill exact references before execution. This is a task brief template, not an installed skill or active repository instruction file.
|
|
8
|
+
|
|
9
|
+
## Request
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Task title | Not entered |
|
|
14
|
+
| Desired result | Not entered |
|
|
15
|
+
| Why this result matters now | Not entered |
|
|
16
|
+
| Exact component, interface, or revision in scope | Not entered |
|
|
17
|
+
| Work already authorized by this request | Not entered |
|
|
18
|
+
| Deliverables | Not entered |
|
|
19
|
+
|
|
20
|
+
Ask for the result in ordinary language. Examples include obtaining the exact datasheet, finding and auditing a 3D model, verifying a specific claim, or assessing the impact of a proposed replacement.
|
|
21
|
+
|
|
22
|
+
## Minimum context to read
|
|
23
|
+
|
|
24
|
+
List the project brief, current task or question, exact component evidence records, relevant integration records, and design files needed for this task. Point to the narrow records that matter; do not ask the agent to rediscover the entire repository without a reason.
|
|
25
|
+
|
|
26
|
+
## Research or implementation scope
|
|
27
|
+
|
|
28
|
+
State which exact question to answer and how broad the search should be. Identify the operating conditions or revision if they affect the answer. If the question is ambiguous, ask the agent to first report the concrete ambiguity with the useful work already completed.
|
|
29
|
+
|
|
30
|
+
When the task is component research, specify whether a recommendation is wanted. When the task changes the design, state the desired behavior and any selection decisions already made. Do not require extra permission for routine work already covered by the request.
|
|
31
|
+
|
|
32
|
+
## Evidence to retain
|
|
33
|
+
|
|
34
|
+
Describe the evidence needed for the requested conclusion. Typical fields are the exact source and revision, URL, access date, local file and checksum when acquired, precise page or section, claim type and conditions, and the link from the claim to the exact component.
|
|
35
|
+
|
|
36
|
+
For an asset, include its origin, exact or family-level applicability, transformations, dimensional checks, numeric mapping where relevant, and the limitation of any preview. If a resource cannot be obtained or validated, report the attempt and the remaining gap without inventing a completed download or verified state.
|
|
37
|
+
|
|
38
|
+
## Output locations and generated content
|
|
39
|
+
|
|
40
|
+
Use the locations defined in `circuit/WORKFLOW.md`. Update exact facts in the component evidence bundle (`.claude/skills/component-*/`) and write explanatory rationale in authored documentation. Regenerate derived catalogs and previews with the project commands (`pnpm circuit:generate`, `pnpm previews:generate`), never by editing generated pages.
|
|
41
|
+
|
|
42
|
+
State which files were created or updated and why. Keep the final answer readable enough that the owner can review the conclusion without opening every raw source.
|
|
43
|
+
|
|
44
|
+
## Definition of done
|
|
45
|
+
|
|
46
|
+
| Required result | Evidence of completion |
|
|
47
|
+
|---|---|
|
|
48
|
+
| The exact research question is answered within available evidence | Supported conclusion or explicitly bounded unresolved result |
|
|
49
|
+
| Sources or assets are retained as requested | Actual file and provenance records, or a concrete retrieval failure |
|
|
50
|
+
| Relevant project implications are described | Affected decisions, interfaces, calculations, or follow-up tasks |
|
|
51
|
+
| Requested records and authored pages agree | Updated references and no unsupported promotion of status |
|
|
52
|
+
| Checks are reported accurately | Commands and outcomes actually observed; unperformed checks identified |
|
|
53
|
+
|
|
54
|
+
## Suggested final response
|
|
55
|
+
|
|
56
|
+
Ask the agent to return: the conclusion; files changed; evidence supporting the conclusion; what remains uncertain; and the one next action that would materially improve confidence. A failed retrieval can still be a completed bounded research task if the result and next step are documented honestly.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Component candidate research"
|
|
3
|
+
description: "A bounded component research question, comparison criteria, evidence links, and unresolved gaps."
|
|
4
|
+
sidebar_position: 10
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Duplicate this page for a real research topic. It records rationale and suitability questions; the component evidence bundle owns exact identity, sources, facts, asset provenance, and coverage.
|
|
8
|
+
|
|
9
|
+
## Research question
|
|
10
|
+
|
|
11
|
+
| Field | Entry |
|
|
12
|
+
|---|---|
|
|
13
|
+
| Research ID | Not assigned |
|
|
14
|
+
| Function or problem being solved | Not entered |
|
|
15
|
+
| Relevant project requirements | Not entered |
|
|
16
|
+
| Intended use and operating conditions | Not entered |
|
|
17
|
+
| Research date and scope | Not entered |
|
|
18
|
+
| Decision this research will inform | Not entered |
|
|
19
|
+
|
|
20
|
+
Write the question narrowly enough that an agent can return a useful answer. For example, ask whether candidates satisfy the documented interface and sourcing constraints; do not request “find the best part” without criteria.
|
|
21
|
+
|
|
22
|
+
## Comparison criteria
|
|
23
|
+
|
|
24
|
+
| Criterion | Required, preferred, or exploratory | How it will be evaluated | Reference |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| Not entered | Not classified | Not entered | Requirement or analysis reference |
|
|
27
|
+
|
|
28
|
+
Criteria may include behavior, operating conditions, startup defaults, package geometry, documented pin mapping, tool support, assembly capability, availability, or cost. Include only criteria relevant to the project and give them a clear priority.
|
|
29
|
+
|
|
30
|
+
## Candidate register
|
|
31
|
+
|
|
32
|
+
| Candidate record | Exact identity confirmed? | Why it is being considered | Material evidence gap | Current disposition |
|
|
33
|
+
|---|---|---|---|---|
|
|
34
|
+
| No candidate entered | Not assessed | Not entered | Not entered | Unreviewed |
|
|
35
|
+
|
|
36
|
+
An orderable identity includes the manufacturer and full MPN, including applicable suffixes and package variants. A distributor number is an additional mapping that needs evidence; a family name or generic footprint name does not resolve the exact part.
|
|
37
|
+
|
|
38
|
+
## What the evidence establishes
|
|
39
|
+
|
|
40
|
+
For each candidate, link the relevant canonical records and explain their bearing on the research question. Do not recreate all the source facts in this page.
|
|
41
|
+
|
|
42
|
+
| Research issue | Evidence reference | Interpretation for this use | Limitation |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| Not entered | Record, fact, calculation, or asset ID | Not entered | Not entered |
|
|
45
|
+
|
|
46
|
+
If two sources disagree, identify the disputed field and record the disagreement. Preserve whether a statement is a manufacturer guarantee, a typical characteristic, a distributor listing, an inferred calculation, or a project observation. A missing source or unreadable datasheet remains a gap.
|
|
47
|
+
|
|
48
|
+
## Datasheet and CAD needs
|
|
49
|
+
|
|
50
|
+
State which documents or assets the next task should obtain and what they are needed to prove. Possible requests include a manufacturer datasheet for one package suffix, a dimensioned drawing for a mounting feature, or a model audit against the exact part.
|
|
51
|
+
|
|
52
|
+
Record attempted retrievals and failures in the component evidence bundle. A URL is a reference; a locally retained file with recorded origin is an acquired asset. An imported or family-level model should remain identified as such until the required checks are completed.
|
|
53
|
+
|
|
54
|
+
## Recommendation and alternatives
|
|
55
|
+
|
|
56
|
+
No candidate is recommended by this template. When the research supports a recommendation, explain its strongest reason, the conditions under which it holds, and the uncertainty that could change it. Link a [decision record](../decisions/decision.mdx) if the owner adopts it.
|
|
57
|
+
|
|
58
|
+
## Next action
|
|
59
|
+
|
|
60
|
+
Name the smallest follow-up that would change the decision: another source, package check, conditioned calculation, supplier response, or bench observation. Add it to [next actions](../project/next-actions.mdx).
|