xiaoju
b0e3f4a363
feat: use git worktree for isolated development in solve-issue workflow
...
All roles (developer, reviewer, tester, committer) now work in
~/repos/workflow-worktrees/fix/<issue>-<slug> instead of modifying
the main working directory. Prevents self-destructive edits.
Fixes #464
2026-05-24 10:22:25 +00:00
xiaoju
155b879d29
chore(workflow): developer must rebase main when bounced back
...
Prevents duplicate lint fixes when main already has the fixes.
小橘 🍊 (NEKO Team)
2026-05-23 10:57:44 +00:00
xiaoju
3d6399c0e3
feat: make edge prompt required (Phase 1)
...
- Transition.prompt: string | null → string
- EvaluateResult.prompt: string | null → string
- AgentContext.edgePrompt: string | null → string
- CLI YAML validation rejects missing prompt
- All tests updated
Phase 2 will replace edgePrompt === null checks with findLastRoleIndex.
Refs #405 , #406 , #404
2026-05-23 04:28:58 +00:00
xiaoju
aeb7180e9d
chore: fix meta.plan → frontmatter.plan in workflow procedures
...
小橘 <xiaoju@shazhou.work >
2026-05-22 11:22:34 +00:00
xiaoju
c9507b8dc1
fix: add git worktree hygiene to solve-issue workflow
...
Developer: checkout main + create fresh branch before coding.
Reviewer: verify branch matches issue before reviewing.
Fixes #395
小橘 <xiaoju@shazhou.work >
2026-05-22 10:59:08 +00:00
xiaoju
a803fcb4fc
fix: solve-issue.yaml meta.plan → frontmatter.plan
...
Follows #375 rename.
2026-05-22 09:04:34 +00:00
xiaoju
3b7d0564bb
feat: uwf cas put-text for storing plain text in CAS
...
- Register built-in text schema ({type: 'string'}) alongside workflow schemas
- Add cmdCasPutText command: uwf cas put-text <text>
- Update CLI reference in workflow-util
- Update solve-issue.yaml procedure to use put-text
Refs #380
2026-05-22 08:53:27 +00:00
xiaoju
e5ae9a134c
feat: register $first/$last JSONata functions in moderator
...
Register custom $first(role) and $last(role) functions in the JSONata
evaluator. These search the steps array and return the matching role's
frontmatter (output) directly, replacing verbose steps[-1].output.x
expressions with semantic $last('role').field syntax.
- workflow-moderator: register functions via expr.registerFunction()
- Updated all condition expressions in .workflows/ and examples/
- Added tests for $last, $first, and unmatched role (undefined)
Fixes #376
2026-05-22 06:29:56 +00:00
xiaoju
02f7f0b708
refactor!: rename RoleDefinition.meta → frontmatter
...
BREAKING CHANGE: All workflow YAML files must use 'frontmatter' instead of 'meta'.
- workflow-protocol: RoleDefinition.meta → frontmatter, schema updated
- cli-workflow: validate.ts, workflow.ts — resolveMetaRef → resolveFrontmatterRef
- workflow-agent-kit: run.ts — metaSchema → frontmatterSchema
- All YAML files updated (examples/, .workflows/)
Fixes #374
2026-05-22 06:05:07 +00:00
xiaoju
8a425521da
fix: output instructions now specify required frontmatter meta fields
2026-05-22 05:42:17 +00:00
xiaoju
f174f2fd0a
fix: remove redundant condition null from $START
2026-05-22 05:33:39 +00:00
xiaoju
355594d074
refactor: graph fallback pattern + positive condition names
...
- Last transition in each graph node is now the fallback (no condition)
- Remove redundant positive conditions (ready, devDone, approved, passed, pushSuccess)
- notApproved → rejected (positive naming)
2026-05-22 05:31:43 +00:00
xiaoju
fd7609fe90
fix: address review feedback from xingyue
...
1. npm/npx → bun/bunx (project standard)
2. Fix tea CLI usage (tea comment + -r flag)
3. cursor-agent → coding (abstract capability)
4. Clarify committer inherits developer's worktree
5. Mark meta.plan required when status=ready
6. PR description must follow What/Why/Changes/Ref template
7. Note maxRounds loop protection in description
2026-05-22 05:27:21 +00:00
xiaoju
dacecfbbb7
feat: create .workflows/solve-issue.yaml
...
TDD-driven issue resolution workflow with 5 roles:
- planner: analyzes issue, outputs TDD test spec (stored in CAS)
- developer: implements code following TDD
- reviewer: code standards compliance check (not functionality)
- tester: functional correctness verification
- committer: commits and creates PR
Graph handles bounce-backs: reviewer→developer, tester→developer,
tester→planner (fix_spec), committer→developer (hook_failed).
Refs #370
2026-05-22 05:21:19 +00:00