@jabworks/condux 0.9.0 → 0.10.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jabworks/condux",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "OpenCode plugin for the condux workflow toolkit — bundles the condux skills and injects the specialist agents (coder, explorer, planner, researcher) plus an opt-in plan-review listener.",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -15,7 +15,7 @@ import { spawnSync } from 'node:child_process';
15
15
  import { fileURLToPath } from 'node:url';
16
16
 
17
17
  const SKILL_BASE = path.dirname(fileURLToPath(import.meta.url));
18
- const PLUGIN_ROOT = path.resolve(SKILL_BASE, '..', '..', '..');
18
+ const PLUGIN_ROOT = path.resolve(SKILL_BASE, '..', '..');
19
19
  const HOME = os.homedir();
20
20
  const EXEC_TIMEOUT = 5000;
21
21
  const PACKAGE = '@jabworks/condux';
@@ -23,7 +23,7 @@ to place the spec.
23
23
  {feature-slug}/ # cross-cutting, or scaffolded from the repo root
24
24
  apps/web/
25
25
  {feature-slug}/ # scaffolded while working in apps/web
26
- index.md # TOC, last updated, commit hash, changelog ← scaffold creates this
26
+ index.md # purpose, TOC, last updated, commit hash, changelog ← scaffold creates this
27
27
  decisions.md # Design decisions with context + rationale
28
28
  api.md # Endpoints, types, external APIs consumed
29
29
  fields.md # Field mappings: BE/3rd-party → UI, or forwarding chains
@@ -88,6 +88,18 @@ Read [references/templates.md](references/templates.md) for the structure of eac
88
88
 
89
89
  - Write only files that have real content
90
90
  - After writing, update the `## Contents` section in `index.md` with links to the files you created
91
+ - Replace the HTML comment the scaffold left below the title with a one-line
92
+ `> …` note saying what the spec is for. That note is what `spec-browser`'s
93
+ catalog shows for the spec; leave it and the spec is listed with nothing to
94
+ identify it
95
+
96
+ **Cite committed paths only.** The spec is durable; the design and plan it came
97
+ from live in `.condux/`, which is gitignored — a citation into it is dead on
98
+ every machine but this one. When the changelog or a content file needs to point
99
+ at a design or a verification report, copy that file into the spec directory
100
+ first (`design.md`, `verification.md`) and cite that path. If the artifact is
101
+ already gone, say so and name what survives — a PR, a commit — instead of a
102
+ path that resolves nowhere.
91
103
 
92
104
  ## Updating an Existing Spec
93
105
 
@@ -82,9 +82,19 @@ fi
82
82
 
83
83
  mkdir -p "$SPEC_DIR"
84
84
 
85
+ # The comment is the purpose slot. spec-browser's catalog (specs/index.md)
86
+ # shows a spec's "> note" as its description and an honest "—" when there is
87
+ # none, so a spec with no purpose line is listed with nothing to identify it.
88
+ # A visible placeholder would be worse — it generates into the catalog looking
89
+ # like content — so the prompt is an HTML comment, which the catalog skips and
90
+ # no rendered view of the file displays.
85
91
  cat > "$SPEC_DIR/index.md" <<EOF
86
92
  # $INPUT — Tech Spec
87
93
 
94
+ <!-- Replace this comment with a one-line "> …" note saying what this spec is
95
+ for. It is what specs/index.md shows for this spec; without it the catalog
96
+ lists this spec with no description. -->
97
+
88
98
  **Last updated:** $DATE
89
99
  **Commit:** $COMMIT
90
100
  **Status:** draft
@@ -9,6 +9,9 @@ Copy-paste templates for each spec file. Omit sections that don't apply — don'
9
9
  ```markdown
10
10
  # {Feature Name} — Tech Spec
11
11
 
12
+ > One line: what this spec is for. This is what the catalog (`specs/index.md`)
13
+ > shows for the spec — without it the spec is listed with no description.
14
+
12
15
  **Last updated:** {YYYY-MM-DD}
13
16
  **Commit:** {short-hash}
14
17
  **Status:** draft | review | stable
@@ -24,6 +27,13 @@ Copy-paste templates for each spec file. Omit sections that don't apply — don'
24
27
  - {YYYY-MM-DD} ({short-hash}): Initial spec
25
28
  ```
26
29
 
30
+ **Cite committed paths only.** A spec is durable; the design and plan it came
31
+ from are working state under `.condux/`, gitignored and gone on any other
32
+ machine. If the changelog or body needs to point at a design or a verification
33
+ report, copy that file into this spec's directory first (`design.md`,
34
+ `verification.md`) and cite *that*. Six such citations were written before this
35
+ rule existed and two were already dead when they were found.
36
+
27
37
  ---
28
38
 
29
39
  ## decisions.md
@@ -183,6 +183,16 @@ The spec is what you keep; the design and plan are scaffolding for building
183
183
  it. Don't promote working state into `docs/` or the repo root — a project's
184
184
  `docs/` belongs to the project, not to condux.
185
185
 
186
+ **Citation direction: durable content may not depend on ephemeral content.**
187
+ A committed file may not cite a path inside `.condux/` — that path is gone on
188
+ any other machine and on any fresh clone, so the reference is dead for everyone
189
+ but its author. When a spec, a changelog entry or a backlog item needs to point
190
+ at a design or a verification report, **promote it first**: copy that file into
191
+ the durable tree (the spec directory it belongs to) and cite the committed
192
+ path. If the artifact no longer exists, say so and name what survives — a PR, a
193
+ commit — rather than a path that resolves nowhere. The split above says where
194
+ each artifact *lives*; this says which direction a reference may point.
195
+
186
196
  **Bootstrap.** `.condux/` is created on demand at the git root by the first
187
197
  skill that writes there. Before that first write, check it's ignored:
188
198
 
@@ -16,7 +16,7 @@
16
16
  "hooks": [
17
17
  {
18
18
  "type": "command",
19
- "command": "node \"${PLUGIN_ROOT}/skills/condux/plan-review/references/annotate-server.js\" --codex-stop",
19
+ "command": "node \"${PLUGIN_ROOT}/skills/plan-review/references/annotate-server.js\" --codex-stop",
20
20
  "timeout": 345600
21
21
  }
22
22
  ]