Skip to content

Commit 1b8d8f8

Browse files
Release v4.6.2: first-turn contract — embedded goal means Architect only.
Clarifies that proceed/devam never permits turn-1 code edits; adds misinterpretation guards and ARCHITECT cycle-start flow when the user already stated the goal. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 3721e28 commit 1b8d8f8

12 files changed

Lines changed: 87 additions & 23 deletions

File tree

.cursor/commands/graphstack.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# GraphStack — start Orchestrator
22

3-
1. Execute **Activation** in `orchestrator/ORCHESTRATOR.md` exactly (full parallel read batch: TOKEN_OPTIMIZER, GRAPH_REPORT, BRIEF, doing/, STATE).
4-
2. Greet using the scripted format from step 8.
5-
3. **First-turn routing (step 9):** If the user already embedded a task goal in this message → greet briefly, enter **[ARCHITECT MODE]** immediately (no code on turn 1). If the message is empty → greet and wait.
3+
1. Execute **Activation** in `orchestrator/ORCHESTRATOR.md` (parallel reads: TOKEN_OPTIMIZER, GRAPH_REPORT, BRIEF, doing/, STATE).
4+
2. Greet using step 8 format.
5+
3. **If the user embedded a task goal:** that triggers **ARCHITECT only**`cycle start` + BRIEF. **Not** Builder. **Not** code edits on turn 1.
6+
4. **If the message is empty:** greet and wait.

.cursor/rules/graphstack.mdc

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,26 @@ handoff/STATE.md (last ## block only)
3636

3737
Then greet per `orchestrator/ORCHESTRATOR.md` step 8.
3838

39-
**If the user's first message already contains a task goal:** greet briefly, then
40-
enter **[ARCHITECT MODE]** immediately — do **not** implement code on the first turn.
39+
## ⛔ First-turn contract (when user message includes a task goal)
4140

42-
**If doing/ has a task and BRIEF is Ready for Builder:** offer to resume Builder or
43-
run `python -m graphstack cycle enter-builder <task-id>` before code edits.
41+
The user giving a goal in the same message does **NOT** mean “implement now”.
42+
It means: **start the GraphStack cycle** — Architect phase only.
43+
44+
```
45+
ALLOWED turn 1: parallel Activation reads, graph query, cycle start, handoff/BRIEF.md
46+
FORBIDDEN turn 1: any Write/Edit on code paths, implementation, “quick fix” patches
47+
```
48+
49+
Required sequence before any code file changes:
50+
1. Announce `[ARCHITECT MODE]`
51+
2. `python -m graphstack cycle start <task-id> "<title>"`
52+
3. Write `handoff/BRIEF.md` (Status: Ready for Builder)
53+
4. Orchestrator → `cycle enter-builder` → then `[BUILDER MODE]`
54+
55+
**Never interpret “proceed”, “devam”, or “goal embedded” as permission to code.**
56+
57+
**If doing/ has a task and BRIEF is Ready for Builder:** offer resume Builder or
58+
`python -m graphstack cycle enter-builder <task-id>` before code edits.
4459

4560
## 🧠 Rule 1: Graph First (Most Important)
4661

.cursor/skills/architect/ARCHITECT.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ When activated, do this sequence exactly — no skipping:
2121
→ If graph exists: proceed normally.
2222
2323
2. Report: "Graph loaded. [N] nodes, [N] modules, last updated [date]."
24-
3. Ask: "What are we building or changing today?"
25-
4. Wait for user input before proceeding.
24+
3. If the user's message already states the goal → use it; do NOT ask again.
25+
If the goal is unclear → ask one question, then wait.
26+
4. Immediately run cycle start (if not already done) and begin the brief:
27+
python -m graphstack cycle start <task-id> "<title from goal>"
28+
You do not write code — only handoff/BRIEF.md.
2629
```
2730

2831
---

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ All notable changes to GraphStack are documented here.
44

55
---
66

7+
## [v4.6.2] — 2026-06-11
8+
9+
### Changed
10+
- **First-turn contract**`graphstack.mdc` explicitly forbids code edits on turn 1 when the user embeds a task goal; embedded goal means Architect + `cycle start` + BRIEF only.
11+
- **`ORCHESTRATOR.md`** — misinterpretation guards (“proceed/devam” ≠ implement now).
12+
- **`ARCHITECT.md`** — skip re-asking when goal is already in the user message; run `cycle start` immediately.
13+
- **`/graphstack` command** — ARCHITECT-only routing on embedded goals (not Builder, not code).
14+
15+
---
16+
717
## [v4.6.1] — 2026-06-11
818

919
### Changed

orchestrator/ORCHESTRATOR.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,17 @@ Execute this sequence exactly on every session start. Each step has a fallback
5555
9. First-turn routing (replaces blind wait):
5656
a. User message is empty / only greeting → greet (step 8) and wait.
5757
b. User message contains a task goal (feature, fix, bug) → greet briefly (step 8),
58-
then enter ARCHITECT immediately. Do NOT implement code on the first turn.
58+
then enter ARCHITECT immediately.
59+
→ Run `cycle start`, scope the brief, write handoff/BRIEF.md.
60+
→ Do NOT write/edit code files on turn 1. “Embedded goal” ≠ “build now”.
5961
c. doing/ has a task + BRIEF Ready for Builder → offer resume Builder:
6062
`python -m graphstack cycle enter-builder <task-id>` before any code edit.
63+
64+
Misinterpretation guards (never do these):
65+
- “User described the fix” → skip Architect and patch code ❌
66+
- “Proceed / devam after greeting” → jump to Builder without BRIEF ❌
67+
- “Graph exists” → skip handoff/board ❌
68+
Correct: embedded goal → ARCHITECT + cycle start + BRIEF only.
6169
```
6270

6371
---

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "MertCapkin_GraphStack"
7-
version = "4.6.1"
7+
version = "4.6.2"
88
description = "Graph-first AI development workflow — board, gate, graph queries, one-shot init"
99
readme = "README.md"
1010
license = { text = "MIT" }

scripts/graphstack/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
``gate``, ``state``, ``graph``, ``cycle``
99
"""
1010

11-
__version__ = "4.6.1"
11+
__version__ = "4.6.2"
1212
__all__ = ["__version__"]
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# GraphStack — start Orchestrator
22

3-
1. Execute **Activation** in `orchestrator/ORCHESTRATOR.md` exactly (full parallel read batch: TOKEN_OPTIMIZER, GRAPH_REPORT, BRIEF, doing/, STATE).
4-
2. Greet using the scripted format from step 8.
5-
3. **First-turn routing (step 9):** If the user already embedded a task goal in this message → greet briefly, enter **[ARCHITECT MODE]** immediately (no code on turn 1). If the message is empty → greet and wait.
3+
1. Execute **Activation** in `orchestrator/ORCHESTRATOR.md` (parallel reads: TOKEN_OPTIMIZER, GRAPH_REPORT, BRIEF, doing/, STATE).
4+
2. Greet using step 8 format.
5+
3. **If the user embedded a task goal:** that triggers **ARCHITECT only**`cycle start` + BRIEF. **Not** Builder. **Not** code edits on turn 1.
6+
4. **If the message is empty:** greet and wait.

scripts/graphstack/assets/.cursor/rules/graphstack.mdc

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,26 @@ handoff/STATE.md (last ## block only)
3636

3737
Then greet per `orchestrator/ORCHESTRATOR.md` step 8.
3838

39-
**If the user's first message already contains a task goal:** greet briefly, then
40-
enter **[ARCHITECT MODE]** immediately — do **not** implement code on the first turn.
39+
## ⛔ First-turn contract (when user message includes a task goal)
4140

42-
**If doing/ has a task and BRIEF is Ready for Builder:** offer to resume Builder or
43-
run `python -m graphstack cycle enter-builder <task-id>` before code edits.
41+
The user giving a goal in the same message does **NOT** mean “implement now”.
42+
It means: **start the GraphStack cycle** — Architect phase only.
43+
44+
```
45+
ALLOWED turn 1: parallel Activation reads, graph query, cycle start, handoff/BRIEF.md
46+
FORBIDDEN turn 1: any Write/Edit on code paths, implementation, “quick fix” patches
47+
```
48+
49+
Required sequence before any code file changes:
50+
1. Announce `[ARCHITECT MODE]`
51+
2. `python -m graphstack cycle start <task-id> "<title>"`
52+
3. Write `handoff/BRIEF.md` (Status: Ready for Builder)
53+
4. Orchestrator → `cycle enter-builder` → then `[BUILDER MODE]`
54+
55+
**Never interpret “proceed”, “devam”, or “goal embedded” as permission to code.**
56+
57+
**If doing/ has a task and BRIEF is Ready for Builder:** offer resume Builder or
58+
`python -m graphstack cycle enter-builder <task-id>` before code edits.
4459

4560
## 🧠 Rule 1: Graph First (Most Important)
4661

scripts/graphstack/assets/.cursor/skills/architect/ARCHITECT.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ When activated, do this sequence exactly — no skipping:
2121
→ If graph exists: proceed normally.
2222
2323
2. Report: "Graph loaded. [N] nodes, [N] modules, last updated [date]."
24-
3. Ask: "What are we building or changing today?"
25-
4. Wait for user input before proceeding.
24+
3. If the user's message already states the goal → use it; do NOT ask again.
25+
If the goal is unclear → ask one question, then wait.
26+
4. Immediately run cycle start (if not already done) and begin the brief:
27+
python -m graphstack cycle start <task-id> "<title from goal>"
28+
You do not write code — only handoff/BRIEF.md.
2629
```
2730

2831
---

0 commit comments

Comments
 (0)