Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bootstrap/version.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Constructor Studio pinned cfs version
[cfs]
version = "v1.3.6"
requested_ref = "latest"
requested_ref = "v1.3.6"
source_type = "github"
canonical_source = "https://api.github.com/repos/constructorfabric/studio"
effective_source = "https://api.github.com/repos/constructorfabric/studio"
22 changes: 22 additions & 0 deletions architecture/features/agent-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,10 @@ Without this feature, users would need to manually create and maintain agent-spe
delegation, phase compile/execute, brainstorm, PDSL, plan, explore, generate,
analyze/explain, workspace, map, auto-config, migration, and installed-kit
shortcut examples such as PR review/status.
- Agent invokes `/cf` or a thin router for a cross-cutting request → the router
offers all relevant companion workflows, supports explicit multi-select, then
loads each selected workflow's prerequisites and gates in order without
bypassing approval or STOP_TURN boundaries.

**Steps**:
1. - `p1` - Agent loads SKILL.md navigation hub - `inst-load-skill`
Expand All @@ -116,6 +120,24 @@ Without this feature, users would need to manually create and maintain agent-spe
5. - `p1` - If routing is ambiguous, agent presents every core route family
plus direct installed-kit shortcut examples before asking the user to choose
or restate a concrete request - `inst-clarify-full-route-family`
6. [ ] - `p1` - If no concrete intent is supplied, agent first presents the full
workflow menu with a `describe intent / help me choose` option; when the
user supplies free-text intent, agent re-runs matching and presents a second
menu with suitable workflows and companion multi-skill choices -
`inst-cf-intent-clarify-after-menu`
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
approvals, and terminal boundaries - `inst-companion-multiselect`
Comment on lines +128 to +140

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Delete the orphaned checklist tail.

Line 140 is a dangling duplicate of step 7 and even switches the instruction ID spelling, so the acceptance criteria read as two conflicting fragments. Merge it back into step 7 or remove it entirely.

🧹 Proposed fix
-  approvals, and terminal boundaries - `inst-companion-multiselect`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
approvals, and terminal boundaries - `inst-companion-multiselect`
7. [ ] - `p1` - If a task maps to multiple domains, agent offers compatible
companion workflows as a multi-select menu and invokes every selected
workflow sequentially, preserving each workflow's prerequisites, gates,
STOP_TURN boundaries, and approval requirements - `inst-companion-multi-select`
8. [ ] - `p1` - Root `cf` keeps only always-on bootstrap/routing/memory/command
rules; every conditional module is loaded through `ConditionalModuleLoading`
before use, and a rule may be moved out of the root skill only when its
trigger can be stated as one short stable `BEFORE`/`WHEN` loading rule -
`inst-cf-conditional-module-loading`
9. [ ] - `p1` - During cf load, agent reports both loaded always-on sources and
the conditional-module trigger table so the user can see which modules will
load when their conditions fire - `inst-cf-module-load-report`
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@architecture/features/agent-integration.md` around lines 128 - 140, The
markdown file contains an orphaned text fragment on line 140 that reads
"approvals, and terminal boundaries - `inst-companion-multiselect`" which is a
dangling duplicate of step 7's acceptance criteria. This fragment uses an
inconsistent spelling of the instruction ID (multiselect instead of
multi-select) and creates conflicting acceptance criteria. Delete this orphaned
tail line entirely, as step 7 (the checklist item beginning with "If a task maps
to multiple domains...") already contains complete and correct acceptance
criteria.


## 3. Processes / Business Logic (CDSL)

Expand Down
25 changes: 20 additions & 5 deletions architecture/features/execution-plans.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,12 @@ Execution Plans solve this by moving decomposition from the user to the tool. Th
**Success Scenarios**:
- User asks to execute next phase → agent reads phase file, follows instructions, produces output
- All acceptance criteria pass → phase marked done in manifest
- Gitignored plan state under `{cf-studio-path}/.plans/` is executed with the
non-isolated phase runner so status updates and outputs land in the
authoritative main checkout
- Tracked or worktree-visible plan state may use the isolated phase runner
variant when the plan manifest and declared outputs are present inside the
worktree

**Error Scenarios**:
- Phase depends on incomplete phase → agent reports dependency and stops
Expand All @@ -152,12 +158,17 @@ Execution Plans solve this by moving decomposition from the user to the tool. Th
3. [x] - `p1` - **IF** target phase has unmet dependencies → **RETURN** error with dependency list - `inst-check-deps`
4. [x] - `p1` - Agent updates phase status to `in_progress` in manifest - `inst-update-status-start`
5. [x] - `p1` - Agent reads phase file content (self-contained instructions) - `inst-read-phase`
6. [x] - `p1` - Agent follows phase instructions exactly (the phase file contains ALL needed context) - `inst-execute`
7. [x] - `p1` - Agent self-checks against acceptance criteria in phase file - `inst-self-check`
8. [x] - `p1` - **IF** all acceptance criteria pass - `inst-check-pass`
6. [ ] - `p1` - Agent selects phase execution isolation policy: use
`cf-phase-runner` when plan state or declared outputs are gitignored or
main-checkout-local; use `cf-phase-runner-isolated` only when the plan
manifest and outputs are tracked or otherwise worktree-visible -
`inst-select-phase-runner-isolation`
7. [x] - `p1` - Agent follows phase instructions exactly (the phase file contains ALL needed context) - `inst-execute`
8. [x] - `p1` - Agent self-checks against acceptance criteria in phase file - `inst-self-check`
9. [x] - `p1` - **IF** all acceptance criteria pass - `inst-check-pass`
1. [x] - `p1` - Agent updates phase status to `done` in manifest - `inst-mark-done`
2. [x] - `p1` - Agent reports phase completion and next phase - `inst-report-done`
9. [x] - `p1` - **ELSE** - `inst-check-fail`
10. [x] - `p1` - **ELSE** - `inst-check-fail`
1. [x] - `p1` - Agent updates phase status to `failed` in manifest with details - `inst-mark-failed`
2. [x] - `p1` - Agent reports failed criteria - `inst-report-failed`

Expand Down Expand Up @@ -227,7 +238,11 @@ Execution Plans solve this by moving decomposition from the user to the tool. Th
7. [x] - `p1` - Write "Acceptance Criteria" section: binary pass/fail checklist for this phase - `inst-write-criteria`
8. [x] - `p1` - Write "Output Format" section: exact expected output format and completion report template - `inst-write-output`
9. [x] - `p1` - Resolve ALL template variables (`{variable}` → absolute paths) in the compiled content - `inst-resolve-vars`
10. [x] - `p1` - **RETURN** compiled phase file content - `inst-return-compiled`
10. [ ] - `p1` - Select phase compilation isolation policy: use
`cf-phase-compiler` when `.plans` is gitignored or main-checkout-local; use
`cf-phase-compiler-isolated` only when the brief, output path, and plan
manifest are worktree-visible - `inst-select-phase-compiler-isolation`
11. [x] - `p1` - **RETURN** compiled phase file content - `inst-return-compiled`

### Enforce Line Budget

Expand Down
Loading
Loading