@exaudeus/workrail 3.27.0 → 3.29.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/dist/console/assets/{index-FtTaDku8.js → index-BZ6HkxGf.js} +1 -1
- package/dist/console/index.html +1 -1
- package/dist/manifest.json +3 -3
- package/docs/README.md +57 -0
- package/docs/adrs/001-hybrid-storage-backend.md +38 -0
- package/docs/adrs/002-four-layer-context-classification.md +38 -0
- package/docs/adrs/003-checkpoint-trigger-strategy.md +35 -0
- package/docs/adrs/004-opt-in-encryption-strategy.md +36 -0
- package/docs/adrs/005-agent-first-workflow-execution-tokens.md +105 -0
- package/docs/adrs/006-append-only-session-run-event-log.md +76 -0
- package/docs/adrs/007-resume-and-checkpoint-only-sessions.md +51 -0
- package/docs/adrs/008-blocked-nodes-architectural-upgrade.md +178 -0
- package/docs/adrs/009-bridge-mode-single-instance-mcp.md +195 -0
- package/docs/adrs/010-release-pipeline.md +89 -0
- package/docs/architecture/README.md +7 -0
- package/docs/architecture/refactor-audit.md +364 -0
- package/docs/authoring-v2.md +527 -0
- package/docs/authoring.md +873 -0
- package/docs/changelog-recent.md +201 -0
- package/docs/configuration.md +505 -0
- package/docs/ctc-mcp-proposal.md +518 -0
- package/docs/design/README.md +22 -0
- package/docs/design/agent-cascade-protocol.md +96 -0
- package/docs/design/autonomous-console-design-candidates.md +253 -0
- package/docs/design/autonomous-console-design-review.md +111 -0
- package/docs/design/autonomous-platform-mvp-discovery.md +525 -0
- package/docs/design/claude-code-source-deep-dive.md +713 -0
- package/docs/design/console-cyberpunk-ui-discovery.md +504 -0
- package/docs/design/console-execution-trace-candidates-final.md +160 -0
- package/docs/design/console-execution-trace-candidates.md +211 -0
- package/docs/design/console-execution-trace-design-candidates-v2.md +113 -0
- package/docs/design/console-execution-trace-design-review.md +74 -0
- package/docs/design/console-execution-trace-discovery.md +394 -0
- package/docs/design/console-execution-trace-final-review.md +77 -0
- package/docs/design/console-execution-trace-review.md +92 -0
- package/docs/design/console-performance-discovery.md +415 -0
- package/docs/design/console-ui-backlog.md +280 -0
- package/docs/design/daemon-architecture-discovery.md +853 -0
- package/docs/design/daemon-design-candidates.md +318 -0
- package/docs/design/daemon-design-review-findings.md +119 -0
- package/docs/design/daemon-engine-design-candidates.md +210 -0
- package/docs/design/daemon-engine-design-review.md +131 -0
- package/docs/design/daemon-execution-engine-discovery.md +280 -0
- package/docs/design/daemon-gap-analysis.md +554 -0
- package/docs/design/daemon-owns-console-plan.md +168 -0
- package/docs/design/daemon-owns-console-review.md +91 -0
- package/docs/design/daemon-owns-console.md +195 -0
- package/docs/design/data-model-erd.md +11 -0
- package/docs/design/design-candidates-consolidate-dev-staleness.md +98 -0
- package/docs/design/design-candidates-walk-cache-depth-limit.md +80 -0
- package/docs/design/design-review-consolidate-dev-staleness.md +54 -0
- package/docs/design/design-review-walk-cache-depth-limit.md +48 -0
- package/docs/design/implementation-plan-consolidate-dev-staleness.md +142 -0
- package/docs/design/implementation-plan-walk-cache-depth-limit.md +141 -0
- package/docs/design/layer3b-ghost-nodes-design-candidates.md +229 -0
- package/docs/design/layer3b-ghost-nodes-design-review.md +93 -0
- package/docs/design/layer3b-ghost-nodes-implementation-plan.md +219 -0
- package/docs/design/list-workflows-latency-fix-plan.md +128 -0
- package/docs/design/list-workflows-latency-fix-review.md +55 -0
- package/docs/design/list-workflows-latency-fix.md +109 -0
- package/docs/design/native-context-management-api.md +11 -0
- package/docs/design/performance-sweep-2026-04.md +96 -0
- package/docs/design/routines-guide.md +219 -0
- package/docs/design/sequence-diagrams.md +11 -0
- package/docs/design/subagent-design-principles.md +220 -0
- package/docs/design/temporal-patterns-design-candidates.md +312 -0
- package/docs/design/temporal-patterns-design-review-findings.md +163 -0
- package/docs/design/test-isolation-from-config-file.md +335 -0
- package/docs/design/v2-core-design-locks.md +2746 -0
- package/docs/design/v2-lock-registry.json +734 -0
- package/docs/design/workflow-authoring-v2.md +1044 -0
- package/docs/design/workflow-docs-spec.md +218 -0
- package/docs/design/workflow-extension-points.md +687 -0
- package/docs/design/workrail-auto-trigger-system.md +359 -0
- package/docs/design/workrail-config-file-discovery.md +513 -0
- package/docs/docker.md +110 -0
- package/docs/generated/v2-lock-closure-plan.md +26 -0
- package/docs/generated/v2-lock-coverage.json +797 -0
- package/docs/generated/v2-lock-coverage.md +177 -0
- package/docs/ideas/backlog.md +3927 -0
- package/docs/ideas/design-candidates-mcp-resilience.md +208 -0
- package/docs/ideas/design-review-findings-mcp-resilience.md +119 -0
- package/docs/ideas/implementation_plan.md +249 -0
- package/docs/ideas/third-party-workflow-setup-design-thinking.md +1948 -0
- package/docs/implementation/02-architecture.md +316 -0
- package/docs/implementation/04-testing-strategy.md +124 -0
- package/docs/implementation/09-simple-workflow-guide.md +835 -0
- package/docs/implementation/13-advanced-validation-guide.md +874 -0
- package/docs/implementation/README.md +21 -0
- package/docs/integrations/claude-code.md +300 -0
- package/docs/integrations/firebender.md +315 -0
- package/docs/migration/v0.1.0.md +147 -0
- package/docs/naming-conventions.md +45 -0
- package/docs/planning/README.md +104 -0
- package/docs/planning/github-ticketing-playbook.md +195 -0
- package/docs/plans/README.md +24 -0
- package/docs/plans/agent-managed-ticketing-design.md +605 -0
- package/docs/plans/agentic-orchestration-roadmap.md +112 -0
- package/docs/plans/assessment-gates-engine-handoff.md +536 -0
- package/docs/plans/content-coherence-and-references.md +151 -0
- package/docs/plans/library-extraction-plan.md +340 -0
- package/docs/plans/mr-review-workflow-redesign.md +1451 -0
- package/docs/plans/native-context-management-epic.md +11 -0
- package/docs/plans/perf-fixes-design-candidates.md +225 -0
- package/docs/plans/perf-fixes-design-review-findings.md +61 -0
- package/docs/plans/perf-fixes-new-issues-candidates.md +264 -0
- package/docs/plans/perf-fixes-new-issues-review.md +110 -0
- package/docs/plans/prompt-fragments.md +53 -0
- package/docs/plans/ui-ux-workflow-design-candidates.md +120 -0
- package/docs/plans/ui-ux-workflow-discovery.md +100 -0
- package/docs/plans/ui-ux-workflow-review.md +48 -0
- package/docs/plans/v2-followup-enhancements.md +587 -0
- package/docs/plans/workflow-categories-candidates.md +105 -0
- package/docs/plans/workflow-categories-discovery.md +110 -0
- package/docs/plans/workflow-categories-review.md +51 -0
- package/docs/plans/workflow-discovery-model-candidates.md +94 -0
- package/docs/plans/workflow-discovery-model-discovery.md +74 -0
- package/docs/plans/workflow-discovery-model-review.md +48 -0
- package/docs/plans/workflow-source-setup-phase-1.md +245 -0
- package/docs/plans/workflow-source-setup-phase-2.md +361 -0
- package/docs/plans/workflow-staleness-detection-candidates.md +104 -0
- package/docs/plans/workflow-staleness-detection-review.md +58 -0
- package/docs/plans/workflow-staleness-detection.md +80 -0
- package/docs/plans/workflow-v2-design.md +69 -0
- package/docs/plans/workflow-v2-roadmap.md +74 -0
- package/docs/plans/workflow-validation-design.md +98 -0
- package/docs/plans/workflow-validation-roadmap.md +108 -0
- package/docs/plans/workrail-platform-vision.md +420 -0
- package/docs/reference/agent-context-cleaner-snippet.md +94 -0
- package/docs/reference/agent-context-guidance.md +140 -0
- package/docs/reference/context-optimization.md +284 -0
- package/docs/reference/example-workflow-repository-template/.github/workflows/validate.yml +125 -0
- package/docs/reference/example-workflow-repository-template/README.md +268 -0
- package/docs/reference/example-workflow-repository-template/workflows/example-workflow.json +80 -0
- package/docs/reference/external-workflow-repositories.md +916 -0
- package/docs/reference/feature-flags-architecture.md +472 -0
- package/docs/reference/feature-flags.md +349 -0
- package/docs/reference/god-tier-workflow-validation.md +272 -0
- package/docs/reference/loop-optimization.md +209 -0
- package/docs/reference/loop-validation.md +176 -0
- package/docs/reference/loops.md +465 -0
- package/docs/reference/mcp-platform-constraints.md +59 -0
- package/docs/reference/recovery.md +88 -0
- package/docs/reference/releases.md +177 -0
- package/docs/reference/troubleshooting.md +105 -0
- package/docs/reference/workflow-execution-contract.md +998 -0
- package/docs/roadmap/README.md +22 -0
- package/docs/roadmap/legacy-planning-status.md +103 -0
- package/docs/roadmap/now-next-later.md +70 -0
- package/docs/roadmap/open-work-inventory.md +389 -0
- package/docs/tickets/README.md +39 -0
- package/docs/tickets/next-up.md +76 -0
- package/docs/workflow-management.md +317 -0
- package/docs/workflow-templates.md +423 -0
- package/docs/workflow-validation.md +184 -0
- package/docs/workflows.md +254 -0
- package/package.json +3 -1
- package/spec/authoring-spec.json +61 -16
- package/workflows/workflow-for-workflows.json +252 -93
- package/workflows/workflow-for-workflows.v2.json +188 -77
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Migration Guide: v0.0.1 to v0.1.0
|
|
2
|
+
|
|
3
|
+
This guide helps you migrate your workflows from Workrail v0.0.1 to v0.1.0, which introduces loop support and schema versioning.
|
|
4
|
+
|
|
5
|
+
## What's New in v0.1.0
|
|
6
|
+
|
|
7
|
+
### Major Features
|
|
8
|
+
- **Loop Support**: Four types of loops (while, until, for, forEach)
|
|
9
|
+
- **Schema Versioning**: Explicit version field for workflows
|
|
10
|
+
- **Migration Tool**: Automated migration command
|
|
11
|
+
|
|
12
|
+
### Breaking Changes
|
|
13
|
+
None - v0.1.0 is fully backward compatible with v0.0.1 workflows.
|
|
14
|
+
|
|
15
|
+
## Automatic Migration
|
|
16
|
+
|
|
17
|
+
The easiest way to migrate is using the CLI tool:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Migrate a single workflow
|
|
21
|
+
workrail migrate my-workflow.json
|
|
22
|
+
|
|
23
|
+
# Preview changes without modifying files
|
|
24
|
+
workrail migrate my-workflow.json --dry-run
|
|
25
|
+
|
|
26
|
+
# Create a backup of the original
|
|
27
|
+
workrail migrate my-workflow.json --backup
|
|
28
|
+
|
|
29
|
+
# Save to a different file
|
|
30
|
+
workrail migrate my-workflow.json --output my-workflow-v0.1.0.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Manual Migration
|
|
34
|
+
|
|
35
|
+
If you prefer to migrate manually:
|
|
36
|
+
|
|
37
|
+
### 1. Add Version Field
|
|
38
|
+
|
|
39
|
+
Add the `version` field to your workflow:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"id": "my-workflow",
|
|
44
|
+
"name": "My Workflow",
|
|
45
|
+
"description": "Does something useful",
|
|
46
|
+
"version": "0.1.0", // Add this line
|
|
47
|
+
"steps": [...]
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. Identify Loop Patterns
|
|
52
|
+
|
|
53
|
+
Look for repetitive steps that could be replaced with loops:
|
|
54
|
+
|
|
55
|
+
#### Before (v0.0.1):
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"steps": [
|
|
59
|
+
{
|
|
60
|
+
"id": "check-status-1",
|
|
61
|
+
"title": "Check Status (Attempt 1)",
|
|
62
|
+
"prompt": "Check if the operation is complete"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"id": "check-status-2",
|
|
66
|
+
"title": "Check Status (Attempt 2)",
|
|
67
|
+
"prompt": "Check if the operation is complete"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "check-status-3",
|
|
71
|
+
"title": "Check Status (Attempt 3)",
|
|
72
|
+
"prompt": "Check if the operation is complete"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### After (v0.1.0):
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"steps": [
|
|
82
|
+
{
|
|
83
|
+
"id": "check-status-loop",
|
|
84
|
+
"type": "loop",
|
|
85
|
+
"title": "Check Status Until Complete",
|
|
86
|
+
"loop": {
|
|
87
|
+
"type": "for",
|
|
88
|
+
"count": 3,
|
|
89
|
+
"maxIterations": 3,
|
|
90
|
+
"iterationVar": "attempt"
|
|
91
|
+
},
|
|
92
|
+
"body": "check-status"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "check-status",
|
|
96
|
+
"title": "Check Status",
|
|
97
|
+
"prompt": "Check if the operation is complete (Attempt {{attempt}})"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Common Patterns to Migrate
|
|
104
|
+
|
|
105
|
+
### Polling Pattern
|
|
106
|
+
Look for: Multiple steps checking status repeatedly
|
|
107
|
+
Replace with: `while` loop with condition
|
|
108
|
+
|
|
109
|
+
### Retry Pattern
|
|
110
|
+
Look for: Duplicate steps with "retry" or "attempt" in the name
|
|
111
|
+
Replace with: `for` loop with fixed count
|
|
112
|
+
|
|
113
|
+
### Batch Processing
|
|
114
|
+
Look for: Steps like "Process item 1", "Process item 2", etc.
|
|
115
|
+
Replace with: `forEach` loop over items
|
|
116
|
+
|
|
117
|
+
### Search Pattern
|
|
118
|
+
Look for: Sequential checks across multiple sources
|
|
119
|
+
Replace with: `until` loop with found condition
|
|
120
|
+
|
|
121
|
+
## Validation
|
|
122
|
+
|
|
123
|
+
After migration, validate your workflows:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
workrail validate my-workflow.json
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Getting Help
|
|
130
|
+
|
|
131
|
+
- See [Loop Documentation](../features/loops.md) for detailed loop syntax
|
|
132
|
+
- Check [examples](../../workflows/examples/loops/) for working loop patterns
|
|
133
|
+
- Run `workrail migrate --help` for CLI options
|
|
134
|
+
|
|
135
|
+
## FAQ
|
|
136
|
+
|
|
137
|
+
**Q: Do I have to migrate to v0.1.0?**
|
|
138
|
+
A: No, v0.0.1 workflows continue to work. Migration is optional but recommended for new features.
|
|
139
|
+
|
|
140
|
+
**Q: Can I mix v0.0.1 and v0.1.0 workflows?**
|
|
141
|
+
A: Yes, Workrail handles both versions transparently.
|
|
142
|
+
|
|
143
|
+
**Q: What if migration fails?**
|
|
144
|
+
A: The tool validates workflows before saving. Use `--dry-run` to preview changes safely.
|
|
145
|
+
|
|
146
|
+
**Q: How do I know which version my workflow uses?**
|
|
147
|
+
A: Check for the `version` field. If missing, it's v0.0.1. The migrate tool also reports versions.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Naming Conventions – Workflow Orchestration System
|
|
2
|
+
|
|
3
|
+
> **Status:** Adopted – Phase 3 completion
|
|
4
|
+
|
|
5
|
+
This document records the agreed-upon naming conventions and the result of the initial audit performed in Phase 3 of the refactor roadmap.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1 Coding-Symbol Conventions
|
|
10
|
+
|
|
11
|
+
| Element | Convention | Example |
|
|
12
|
+
|--------------------------------|-----------------------|----------------------------------|
|
|
13
|
+
| Classes / Types / Interfaces | `PascalCase` | `FileWorkflowStorage` |
|
|
14
|
+
| Functions & Variables | `camelCase` | `getWorkflowById()` |
|
|
15
|
+
| Constants (module scoped) | `UPPER_SNAKE_CASE` | `WORKFLOW_SCHEMA_PATH` |
|
|
16
|
+
| Enum members | `UPPER_SNAKE_CASE` | `WORKFLOW_NOT_FOUND` |
|
|
17
|
+
| Error Classes | Suffix `Error` | `WorkflowNotFoundError` |
|
|
18
|
+
|
|
19
|
+
## 2 File & Directory Names
|
|
20
|
+
|
|
21
|
+
* **Files:** `snake_case` with `.ts` extension (e.g., `workflow_get.ts`).
|
|
22
|
+
* **Directories:** `kebab-case` or lower-case single word (e.g., `workflow/`).
|
|
23
|
+
|
|
24
|
+
Rationale: File names remain friendlier on case-insensitive file systems; underscores map 1-to-1 with existing tool names.
|
|
25
|
+
|
|
26
|
+
## 3 Public API / JSON-RPC Methods
|
|
27
|
+
|
|
28
|
+
* Tool method names follow `snake_case` as defined in the MCP spec (e.g., `workflow_list`).
|
|
29
|
+
|
|
30
|
+
## 4 Audit Result (2025-07-10)
|
|
31
|
+
|
|
32
|
+
The entire `src/` tree was inspected. Findings:
|
|
33
|
+
|
|
34
|
+
| Category | Issues Found | Resolution |
|
|
35
|
+
|--------------------|--------------|------------|
|
|
36
|
+
| File names | **0** | – |
|
|
37
|
+
| Export identifiers | **0** | – |
|
|
38
|
+
| Enum / Const names | **0** | – |
|
|
39
|
+
|
|
40
|
+
Conclusion: Codebase already adheres to the conventions above. No renames were required.
|
|
41
|
+
|
|
42
|
+
## 5 Future Enforcement
|
|
43
|
+
|
|
44
|
+
* ESLint rule set to be extended with `@typescript-eslint/naming-convention` to automatically enforce the table above.
|
|
45
|
+
* Pull-request template updated to reference this document (TBD).
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Planning System
|
|
2
|
+
|
|
3
|
+
This is the **general planning home** for WorkRail.
|
|
4
|
+
|
|
5
|
+
Use it to capture ideas quickly, curate roadmap direction, and promote concrete work into execution-ready tickets without forcing every thought into a full implementation plan too early.
|
|
6
|
+
|
|
7
|
+
## Planning layers
|
|
8
|
+
|
|
9
|
+
### `docs/ideas/`
|
|
10
|
+
|
|
11
|
+
Use for:
|
|
12
|
+
|
|
13
|
+
- raw ideas
|
|
14
|
+
- feature thoughts
|
|
15
|
+
- open questions
|
|
16
|
+
- design seeds
|
|
17
|
+
- things worth remembering before they are prioritized
|
|
18
|
+
|
|
19
|
+
This is the **official dumpground** for product and system ideas.
|
|
20
|
+
|
|
21
|
+
### `docs/roadmap/`
|
|
22
|
+
|
|
23
|
+
Use for:
|
|
24
|
+
|
|
25
|
+
- curated direction
|
|
26
|
+
- now / next / later views
|
|
27
|
+
- major bets
|
|
28
|
+
- cross-cutting product themes
|
|
29
|
+
|
|
30
|
+
Roadmap docs should stay **selective**. Not every idea belongs here.
|
|
31
|
+
|
|
32
|
+
### `docs/tickets/`
|
|
33
|
+
|
|
34
|
+
Use for:
|
|
35
|
+
|
|
36
|
+
- execution-ready work
|
|
37
|
+
- scoped problems
|
|
38
|
+
- acceptance criteria
|
|
39
|
+
- clear non-goals
|
|
40
|
+
- risks or follow-ups
|
|
41
|
+
|
|
42
|
+
If an item is ready to build, it should probably become a ticket.
|
|
43
|
+
|
|
44
|
+
## Graduation path
|
|
45
|
+
|
|
46
|
+
Default flow:
|
|
47
|
+
|
|
48
|
+
1. `ideas` — capture it fast
|
|
49
|
+
2. `roadmap` — decide if it matters strategically
|
|
50
|
+
3. `tickets` — define the work clearly enough to execute
|
|
51
|
+
|
|
52
|
+
Not every idea must become a roadmap item.
|
|
53
|
+
Not every roadmap item must become a ticket immediately.
|
|
54
|
+
|
|
55
|
+
## Status ownership
|
|
56
|
+
|
|
57
|
+
**Status lives in exactly two places**: `docs/roadmap/open-work-inventory.md` and `docs/roadmap/now-next-later.md`.
|
|
58
|
+
|
|
59
|
+
Plan docs in `docs/plans/` describe **design and intent** -- not current status. When work ships, update the roadmap docs, not the plan doc. Plan docs that carry their own status blocks create a second source of truth that drifts.
|
|
60
|
+
|
|
61
|
+
## Rules of thumb
|
|
62
|
+
|
|
63
|
+
- **Idea**: "This might be valuable."
|
|
64
|
+
- **Roadmap item**: "We likely want this."
|
|
65
|
+
- **Ticket**: "We understand this well enough to build."
|
|
66
|
+
|
|
67
|
+
## Docs vs GitHub
|
|
68
|
+
|
|
69
|
+
Use **docs** for:
|
|
70
|
+
|
|
71
|
+
- ideas
|
|
72
|
+
- design
|
|
73
|
+
- roadmap thinking
|
|
74
|
+
- synthesis
|
|
75
|
+
- long-form reasoning
|
|
76
|
+
|
|
77
|
+
Use **GitHub issues** for:
|
|
78
|
+
|
|
79
|
+
- concrete execution-ready work
|
|
80
|
+
- bugs with enough detail to investigate
|
|
81
|
+
- chores or features that are scoped clearly enough to do
|
|
82
|
+
|
|
83
|
+
Use **pull requests** for:
|
|
84
|
+
|
|
85
|
+
- the implementation record
|
|
86
|
+
- review
|
|
87
|
+
- closure of execution work
|
|
88
|
+
|
|
89
|
+
Do not move all design/idea material into GitHub.
|
|
90
|
+
GitHub should primarily track **work**, while docs remain the home for **thinking**.
|
|
91
|
+
|
|
92
|
+
## Existing planning docs
|
|
93
|
+
|
|
94
|
+
Existing feature-specific plans in `docs/plans/` still matter. Treat them as **focused initiative plans**, not as the general inbox for new thoughts.
|
|
95
|
+
|
|
96
|
+
## Starting points
|
|
97
|
+
|
|
98
|
+
- `docs/ideas/backlog.md`
|
|
99
|
+
- `docs/roadmap/now-next-later.md`
|
|
100
|
+
- `docs/roadmap/open-work-inventory.md`
|
|
101
|
+
- `docs/roadmap/legacy-planning-status.md`
|
|
102
|
+
- `docs/planning/docs-taxonomy-and-migration-plan.md`
|
|
103
|
+
- `docs/tickets/README.md`
|
|
104
|
+
- `docs/tickets/next-up.md`
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# GitHub Ticketing Playbook
|
|
2
|
+
|
|
3
|
+
This is the **Phase 1 operating playbook** for the single-dev, agent-assisted GitHub workflow.
|
|
4
|
+
|
|
5
|
+
It is intentionally lightweight and follows the current design in `docs/plans/agent-managed-ticketing-design.md`.
|
|
6
|
+
|
|
7
|
+
## Current model
|
|
8
|
+
|
|
9
|
+
- ideas live first in `docs/ideas/backlog.md`
|
|
10
|
+
- GitHub issues track concrete work
|
|
11
|
+
- labels stay minimal
|
|
12
|
+
- the developer chooses what becomes active
|
|
13
|
+
- agents help when explicitly pointed at a ticket
|
|
14
|
+
|
|
15
|
+
## Phase 1 labels
|
|
16
|
+
|
|
17
|
+
### Type
|
|
18
|
+
|
|
19
|
+
- `feature`
|
|
20
|
+
- `bug`
|
|
21
|
+
- `chore`
|
|
22
|
+
|
|
23
|
+
### State
|
|
24
|
+
|
|
25
|
+
- `next`
|
|
26
|
+
- `active`
|
|
27
|
+
- `blocked`
|
|
28
|
+
|
|
29
|
+
### Label application note
|
|
30
|
+
|
|
31
|
+
The single GitHub issue form captures **work type**, but GitHub does not automatically map that dropdown to labels.
|
|
32
|
+
|
|
33
|
+
In Phase 1, apply labels manually after issue creation or with the CLI.
|
|
34
|
+
|
|
35
|
+
## One-time setup checklist
|
|
36
|
+
|
|
37
|
+
When enabling this workflow in a repo, make sure these are in place:
|
|
38
|
+
|
|
39
|
+
- create the Phase 1 labels
|
|
40
|
+
- verify `.github/ISSUE_TEMPLATE/work-item.yml` exists
|
|
41
|
+
- verify `.github/pull_request_template.md` exists
|
|
42
|
+
- verify the team knows `docs/ideas/backlog.md` is still the home for fuzzy ideas
|
|
43
|
+
|
|
44
|
+
## Phase 1 issue shape
|
|
45
|
+
|
|
46
|
+
Every issue intended for execution should contain:
|
|
47
|
+
|
|
48
|
+
- **Problem**
|
|
49
|
+
- **Goal**
|
|
50
|
+
- **Acceptance criteria**
|
|
51
|
+
- **Verification**
|
|
52
|
+
- **Non-goals**
|
|
53
|
+
- **Context**
|
|
54
|
+
|
|
55
|
+
Optional when an agent may execute it later:
|
|
56
|
+
|
|
57
|
+
- **Agent execution note**
|
|
58
|
+
|
|
59
|
+
## When to create an issue
|
|
60
|
+
|
|
61
|
+
Create a GitHub issue when:
|
|
62
|
+
|
|
63
|
+
- it is a real candidate for near- or medium-term work
|
|
64
|
+
- it is a confirmed bug with enough detail to investigate
|
|
65
|
+
- it is important follow-up discovered during active implementation
|
|
66
|
+
- you explicitly want it tracked in GitHub
|
|
67
|
+
|
|
68
|
+
Keep it in `docs/ideas/backlog.md` instead when it is still fuzzy or speculative.
|
|
69
|
+
|
|
70
|
+
## When something is `next`
|
|
71
|
+
|
|
72
|
+
An issue is ready for `next` when:
|
|
73
|
+
|
|
74
|
+
- the problem is understandable
|
|
75
|
+
- the goal is understandable
|
|
76
|
+
- acceptance criteria exist
|
|
77
|
+
- verification exists
|
|
78
|
+
- non-goals exist
|
|
79
|
+
- no unresolved decision blocks normal execution
|
|
80
|
+
|
|
81
|
+
## When something is `blocked`
|
|
82
|
+
|
|
83
|
+
If you add `blocked`, add a short comment that says:
|
|
84
|
+
|
|
85
|
+
- what is blocked
|
|
86
|
+
- the kind of block: `decision`, `dependency`, `context`, or `external/tooling`
|
|
87
|
+
- the next thing needed to unblock it
|
|
88
|
+
|
|
89
|
+
## Closure rule
|
|
90
|
+
|
|
91
|
+
Close an issue only when:
|
|
92
|
+
|
|
93
|
+
- a PR landed and the acceptance criteria were actually satisfied
|
|
94
|
+
- it was intentionally closed with a clear no-code resolution
|
|
95
|
+
- it was superseded by another explicitly linked issue
|
|
96
|
+
|
|
97
|
+
Before closure:
|
|
98
|
+
|
|
99
|
+
- verify acceptance criteria
|
|
100
|
+
- verify the verification step actually happened
|
|
101
|
+
- confirm scope did not silently expand past the non-goals
|
|
102
|
+
|
|
103
|
+
Default rule:
|
|
104
|
+
|
|
105
|
+
- the developer closes issues by default
|
|
106
|
+
- an agent may close only when closure is clearly mechanical and verification is explicit
|
|
107
|
+
|
|
108
|
+
## Minimal CLI flow
|
|
109
|
+
|
|
110
|
+
### Create an issue
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
gh issue create
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Add labels to an issue
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
gh issue edit <number> --add-label feature,next
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### List open issues
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
gh issue list
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### View one issue
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
gh issue view <number>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Comment on progress or blockers
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
gh issue comment <number> --body "Blocked on dependency. Kind: dependency. Next needed: merge #123."
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Open a PR
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
gh pr create
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## How to hand an issue to an agent
|
|
147
|
+
|
|
148
|
+
In Phase 1, the developer chooses the issue and explicitly hands it to the agent.
|
|
149
|
+
|
|
150
|
+
### Suggested prompt
|
|
151
|
+
|
|
152
|
+
Use something like:
|
|
153
|
+
|
|
154
|
+
> Work GitHub issue `#129`. Read the issue first, follow its acceptance criteria and non-goals, make the code changes, run the relevant verification, and open a PR that references the issue.
|
|
155
|
+
|
|
156
|
+
### Expected flow
|
|
157
|
+
|
|
158
|
+
1. Pick the issue you want worked
|
|
159
|
+
2. Have the agent read the issue
|
|
160
|
+
3. Mark it `active` when work actually begins
|
|
161
|
+
4. Agent implements the change
|
|
162
|
+
5. Agent reports blockers in the issue if needed
|
|
163
|
+
6. Agent opens a PR that references the issue
|
|
164
|
+
7. Close the issue after the PR lands and verification is explicit
|
|
165
|
+
|
|
166
|
+
### If the issue becomes blocked
|
|
167
|
+
|
|
168
|
+
Add a short comment that says:
|
|
169
|
+
|
|
170
|
+
- what is blocked
|
|
171
|
+
- the kind of block: `decision`, `dependency`, `context`, or `external/tooling`
|
|
172
|
+
- the next thing needed to unblock it
|
|
173
|
+
|
|
174
|
+
### Phase 1 reminder
|
|
175
|
+
|
|
176
|
+
Agents do **not** pick backlog work on their own in this mode.
|
|
177
|
+
They help when you explicitly point them at a ticket.
|
|
178
|
+
|
|
179
|
+
### Create the Phase 1 labels (one-time setup)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
gh label create feature --color 0e8a16 --description "New capability or user-visible improvement"
|
|
183
|
+
gh label create bug --color d73a4a --description "Something is wrong"
|
|
184
|
+
gh label create chore --color 6f42c1 --description "Maintenance or repo upkeep"
|
|
185
|
+
gh label create next --color 1d76db --description "Good candidate for upcoming work"
|
|
186
|
+
gh label create active --color fbca04 --description "Currently being worked"
|
|
187
|
+
gh label create blocked --color b60205 --description "Cannot proceed until something changes"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Practical defaults
|
|
191
|
+
|
|
192
|
+
- keep `next` small
|
|
193
|
+
- usually keep only one `active` issue
|
|
194
|
+
- use labels for status, not long status prose
|
|
195
|
+
- use issue bodies for the real contract
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Initiative Plans
|
|
2
|
+
|
|
3
|
+
Use this directory for **active initiative-specific plan and design docs**.
|
|
4
|
+
|
|
5
|
+
Good fits:
|
|
6
|
+
|
|
7
|
+
- canonical roadmap/status doc for one initiative
|
|
8
|
+
- canonical design doc for one initiative
|
|
9
|
+
- focused live initiative plans that are still relevant
|
|
10
|
+
|
|
11
|
+
Do **not** use this directory for:
|
|
12
|
+
|
|
13
|
+
- general planning system docs
|
|
14
|
+
- cross-cutting roadmap prioritization
|
|
15
|
+
- raw ideas
|
|
16
|
+
- old duplicated entrypoints that should no longer be treated as current truth
|
|
17
|
+
|
|
18
|
+
## Rule of thumb
|
|
19
|
+
|
|
20
|
+
- `docs/plans/` = initiative-specific canon
|
|
21
|
+
- `docs/roadmap/` = cross-cutting priority and status views
|
|
22
|
+
- `docs/planning/` = meta-docs about how planning works
|
|
23
|
+
|
|
24
|
+
If a doc cluster grows, prefer consolidating it into **one roadmap doc + one design doc** rather than letting many overlapping entrypoints accumulate.
|