docs: complete nested local draft bindings
This commit is contained in:
@@ -549,6 +549,11 @@ clear operator feedback before adding more architecture.
|
||||
`revision_conflict` while the patch path retains its mutation-time race
|
||||
guard. Implementation:
|
||||
[`draft semantic revision precedence`](historical/superpowers/plans/2026-07-22-draft-semantic-revision-precedence.md).
|
||||
- Completed: focused draft bind and capability-step insertion now preserve
|
||||
nested node-local paths and project nested capability schemas through one
|
||||
shared bounded JSON Schema path module. CLI and agent guidance distinguish
|
||||
rooted bind endpoints from implied rootless map targets. Implementation:
|
||||
[`nested local draft bindings`](historical/superpowers/plans/2026-07-22-nested-local-draft-bindings.md).
|
||||
- Completed: `wf draft set-input` and `wf draft set-output` now accept
|
||||
`--merge`, preserving existing bindings when agents split map edits across
|
||||
multiple revisions.
|
||||
|
||||
+5
-5
@@ -555,7 +555,7 @@
|
||||
- Closes only: nested bind rejection, capability-add nested projection skip, and stale CLI/agent guidance.
|
||||
- Leaves open: structured-input assembly, literals, fan-out maps, nested workflow-output source projection, metadata/update-step, and TypeScript parity.
|
||||
|
||||
- [ ] **Step 1: Update CLI and agent-facing examples**
|
||||
- [x] **Step 1: Update CLI and agent-facing examples**
|
||||
|
||||
Replace “bare field” wording with “rootless node-local path” in all three live user-facing documents. Include both forms together:
|
||||
|
||||
@@ -569,7 +569,7 @@
|
||||
|
||||
Explain that `wf draft bind` names both rooted endpoints, while `set-input` and capability-add already imply the local side and therefore accept rootless targets. Do not claim support for literals, fan-out, or atomic object assembly.
|
||||
|
||||
- [ ] **Step 2: Update issue and roadmap state precisely**
|
||||
- [x] **Step 2: Update issue and roadmap state precisely**
|
||||
|
||||
In `ISSUES.md`, check only these three entries:
|
||||
|
||||
@@ -585,7 +585,7 @@
|
||||
historical/superpowers/plans/2026-07-22-nested-local-draft-bindings.md
|
||||
```
|
||||
|
||||
- [ ] **Step 3: Run the complete focused verification matrix**
|
||||
- [x] **Step 3: Run the complete focused verification matrix**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -599,7 +599,7 @@
|
||||
|
||||
Expected: all focused tests and static checks pass. The pytest count may increase as tests are added; report exact totals rather than copying a planned count.
|
||||
|
||||
- [ ] **Step 4: Run an independent two-axis review**
|
||||
- [x] **Step 4: Run an independent two-axis review**
|
||||
|
||||
Use the `requesting-code-review` skill against the implementation start commit. Review:
|
||||
|
||||
@@ -608,7 +608,7 @@
|
||||
|
||||
Fix Critical and Important findings, rerun affected focused tests, and record any intentional Minor deferrals in the final report.
|
||||
|
||||
- [ ] **Step 5: Archive the completed plan and commit documentation**
|
||||
- [x] **Step 5: Archive the completed plan and commit documentation**
|
||||
|
||||
After all checks pass:
|
||||
|
||||
+12
-4
@@ -328,9 +328,11 @@ wf draft compile concat_ws
|
||||
```
|
||||
|
||||
`set-input` maps graph source paths to node-local input fields:
|
||||
`input.text=text` means `input.text -> local.text`. Targets are bare
|
||||
node-local field names: write `--map input.text=text`, not
|
||||
`--map input.text=local.text`.
|
||||
`input.title=report.title` means
|
||||
`input.title -> local.report.title`. Targets are rootless node-local paths:
|
||||
write `--map input.title=report.title`, not
|
||||
`--map input.title=local.report.title`. Existing single-field targets such as
|
||||
`input.text=text` remain valid.
|
||||
|
||||
`set-output` maps node-local output fields to workflow state paths:
|
||||
`text=state.text` means `local.text -> state.text`.
|
||||
@@ -360,9 +362,15 @@ use `input.*` or `state.*` to `local.*` for step inputs, and `local.*` to
|
||||
wf draft bind concat_ws --revision 9 --step call --from local.value --to state.value
|
||||
wf draft bind concat_ws --revision 9 --step call --from input.text --to local.text
|
||||
wf draft bind concat_ws --revision 9 --step call --from local.result --to output.result
|
||||
wf draft bind report_ws --revision 2 --step render --from input.title --to local.report.title
|
||||
wf draft set-input report_ws --revision 3 --step render --map input.title=report.title
|
||||
wf draft validate concat_ws
|
||||
```
|
||||
|
||||
`bind` names both endpoints, so nested local paths use the explicit `local.`
|
||||
root. `set-input` and `draft add capability --input` already imply the local
|
||||
side and therefore use rootless targets such as `report.title`.
|
||||
|
||||
If the workflow schema field already exists, `bind` reuses it and only updates
|
||||
the step binding. Use `set-input --merge` for pure input-map edits when no
|
||||
schema projection is needed.
|
||||
@@ -383,7 +391,7 @@ wf draft set-workflow-output report_ws --revision 6 --map state.markdown=markdow
|
||||
|
||||
The command combines two common edits:
|
||||
|
||||
- It copies the selected capability local field schema into the workflow input,
|
||||
- It copies the selected capability local path schema into the workflow input,
|
||||
state, or output schema at the graph path.
|
||||
- It merges the matching step input or output binding.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user