opencastle 0.10.7 → 0.12.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/README.md +4 -0
- package/bin/cli.mjs +4 -0
- package/dist/cli/convoy/events.d.ts +10 -0
- package/dist/cli/convoy/events.d.ts.map +1 -0
- package/dist/cli/convoy/events.js +27 -0
- package/dist/cli/convoy/events.js.map +1 -0
- package/dist/cli/convoy/events.test.d.ts +2 -0
- package/dist/cli/convoy/events.test.d.ts.map +1 -0
- package/dist/cli/convoy/events.test.js +94 -0
- package/dist/cli/convoy/events.test.js.map +1 -0
- package/dist/cli/convoy/store.d.ts +23 -0
- package/dist/cli/convoy/store.d.ts.map +1 -0
- package/dist/cli/convoy/store.js +210 -0
- package/dist/cli/convoy/store.js.map +1 -0
- package/dist/cli/convoy/store.test.d.ts +2 -0
- package/dist/cli/convoy/store.test.d.ts.map +1 -0
- package/dist/cli/convoy/store.test.js +387 -0
- package/dist/cli/convoy/store.test.js.map +1 -0
- package/dist/cli/convoy/types.d.ts +56 -0
- package/dist/cli/convoy/types.d.ts.map +1 -0
- package/dist/cli/convoy/types.js +2 -0
- package/dist/cli/convoy/types.js.map +1 -0
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +5 -1
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/init.test.js +1 -1
- package/dist/cli/init.test.js.map +1 -1
- package/dist/cli/lesson.d.ts +17 -0
- package/dist/cli/lesson.d.ts.map +1 -0
- package/dist/cli/lesson.js +294 -0
- package/dist/cli/lesson.js.map +1 -0
- package/dist/cli/log.d.ts +7 -0
- package/dist/cli/log.d.ts.map +1 -0
- package/dist/cli/log.js +131 -0
- package/dist/cli/log.js.map +1 -0
- package/dist/cli/run/executor.js.map +1 -1
- package/dist/cli/run/executor.test.js +1 -0
- package/dist/cli/run/executor.test.js.map +1 -1
- package/dist/cli/run/loop-executor.d.ts +3 -0
- package/dist/cli/run/loop-executor.d.ts.map +1 -0
- package/dist/cli/run/loop-executor.js +155 -0
- package/dist/cli/run/loop-executor.js.map +1 -0
- package/dist/cli/run/loop-reporter.d.ts +6 -0
- package/dist/cli/run/loop-reporter.d.ts.map +1 -0
- package/dist/cli/run/loop-reporter.js +112 -0
- package/dist/cli/run/loop-reporter.js.map +1 -0
- package/dist/cli/run/reporter.d.ts.map +1 -1
- package/dist/cli/run/reporter.js +28 -1
- package/dist/cli/run/reporter.js.map +1 -1
- package/dist/cli/run/schema.d.ts +4 -0
- package/dist/cli/run/schema.d.ts.map +1 -1
- package/dist/cli/run/schema.js +178 -50
- package/dist/cli/run/schema.js.map +1 -1
- package/dist/cli/run/schema.test.js +598 -1
- package/dist/cli/run/schema.test.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +84 -3
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/types.d.ts +78 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +54 -1
- package/dist/cli/update.js.map +1 -1
- package/package.json +3 -2
- package/src/cli/convoy/events.test.ts +118 -0
- package/src/cli/convoy/events.ts +41 -0
- package/src/cli/convoy/store.test.ts +446 -0
- package/src/cli/convoy/store.ts +308 -0
- package/src/cli/convoy/types.ts +68 -0
- package/src/cli/dashboard.ts +5 -1
- package/src/cli/init.test.ts +1 -1
- package/src/cli/lesson.ts +312 -0
- package/src/cli/log.ts +133 -0
- package/src/cli/run/executor.test.ts +1 -0
- package/src/cli/run/executor.ts +8 -8
- package/src/cli/run/loop-executor.ts +199 -0
- package/src/cli/run/loop-reporter.ts +125 -0
- package/src/cli/run/reporter.ts +30 -1
- package/src/cli/run/schema.test.ts +704 -3
- package/src/cli/run/schema.ts +206 -56
- package/src/cli/run.ts +82 -5
- package/src/cli/types.ts +87 -1
- package/src/cli/update.ts +62 -1
- package/src/dashboard/dist/index.html +14 -15
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/scripts/generate-seed-data.ts +23 -43
- package/src/dashboard/seed-data/events.ndjson +104 -0
- package/src/dashboard/src/pages/index.astro +14 -15
- package/src/orchestrator/agents/api-designer.agent.md +1 -1
- package/src/orchestrator/agents/architect.agent.md +1 -1
- package/src/orchestrator/agents/content-engineer.agent.md +1 -1
- package/src/orchestrator/agents/copywriter.agent.md +1 -1
- package/src/orchestrator/agents/data-expert.agent.md +1 -1
- package/src/orchestrator/agents/database-engineer.agent.md +1 -1
- package/src/orchestrator/agents/developer.agent.md +1 -1
- package/src/orchestrator/agents/devops-expert.agent.md +1 -1
- package/src/orchestrator/agents/documentation-writer.agent.md +1 -1
- package/src/orchestrator/agents/performance-expert.agent.md +1 -1
- package/src/orchestrator/agents/release-manager.agent.md +1 -1
- package/src/orchestrator/agents/security-expert.agent.md +1 -1
- package/src/orchestrator/agents/seo-specialist.agent.md +1 -1
- package/src/orchestrator/agents/session-guard.agent.md +9 -21
- package/src/orchestrator/agents/team-lead.agent.md +8 -34
- package/src/orchestrator/agents/testing-expert.agent.md +1 -1
- package/src/orchestrator/agents/ui-ux-expert.agent.md +1 -1
- package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +11 -12
- package/src/orchestrator/customizations/DISPUTES.md +2 -2
- package/src/orchestrator/customizations/README.md +1 -3
- package/src/orchestrator/customizations/logs/README.md +66 -14
- package/src/orchestrator/instructions/ai-optimization.instructions.md +21 -132
- package/src/orchestrator/instructions/general.instructions.md +35 -181
- package/src/orchestrator/plugins/nx/SKILL.md +1 -1
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +4 -8
- package/src/orchestrator/prompts/bug-fix.prompt.md +4 -4
- package/src/orchestrator/prompts/implement-feature.prompt.md +3 -3
- package/src/orchestrator/prompts/quick-refinement.prompt.md +3 -3
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +1 -1
- package/src/orchestrator/skills/agent-hooks/SKILL.md +11 -11
- package/src/orchestrator/skills/decomposition/SKILL.md +1 -1
- package/src/orchestrator/skills/fast-review/SKILL.md +4 -19
- package/src/orchestrator/skills/git-workflow/SKILL.md +72 -0
- package/src/orchestrator/skills/memory-merger/SKILL.md +1 -1
- package/src/orchestrator/skills/observability-logging/SKILL.md +129 -0
- package/src/orchestrator/skills/orchestration-protocols/SKILL.md +2 -2
- package/src/orchestrator/skills/panel-majority-vote/SKILL.md +4 -7
- package/src/orchestrator/skills/self-improvement/SKILL.md +13 -26
- package/src/orchestrator/skills/team-lead-reference/SKILL.md +2 -2
- package/src/orchestrator/customizations/logs/delegations.ndjson +0 -1
- package/src/orchestrator/customizations/logs/panels.ndjson +0 -1
- package/src/orchestrator/customizations/logs/reviews.ndjson +0 -0
- package/src/orchestrator/customizations/logs/sessions.ndjson +0 -1
- /package/src/orchestrator/customizations/logs/{disputes.ndjson → events.ndjson} +0 -0
|
@@ -13,7 +13,7 @@ applyTo: '**'
|
|
|
13
13
|
3. **Leave code better than you found it** — fix adjacent issues when the cost is low.
|
|
14
14
|
4. **Fail visibly** — surface errors clearly; never swallow exceptions silently.
|
|
15
15
|
5. **Verify, don't trust** — confirm outcomes with tools (tests, lint, build) rather than assuming success.
|
|
16
|
-
6. **Log every session** — append observability records to `.github/customizations/logs/` before yielding to the user. No exceptions.
|
|
16
|
+
6. **Log every session** — append observability records to `.github/customizations/logs/` before yielding to the user. No exceptions. Load the **observability-logging** skill for details.
|
|
17
17
|
|
|
18
18
|
## Instruction Priority Hierarchy
|
|
19
19
|
|
|
@@ -66,40 +66,6 @@ Before starting multi-step work, decompose it into individually verifiable tasks
|
|
|
66
66
|
- **Browser testing mandatory** for any UI change — verified at responsive breakpoints defined in `testing-config.md`
|
|
67
67
|
- Load the **testing-workflow** skill for test patterns and the **browser-testing** skill for E2E automation
|
|
68
68
|
|
|
69
|
-
## Git Workflow
|
|
70
|
-
|
|
71
|
-
**NEVER commit or push directly to the `main` branch.** All changes must go through a feature/fix branch and a pull request.
|
|
72
|
-
|
|
73
|
-
1. **Create a branch** from `main` before making any changes: `git checkout -b <type>/<ticket-id>-<short-description>` (e.g., `fix/tas-21-places-redirect-loop`, `feat/tas-15-new-filter`)
|
|
74
|
-
2. **Commit to the branch** — never to `main`. Reference the task tracker issue ID in every commit message (e.g., `TAS-42: Fix token refresh logic`)
|
|
75
|
-
3. **Push the branch** and open a pull request on GitHub. **Do NOT merge** — PRs are opened for review only
|
|
76
|
-
4. **Link the PR to the task tracker** — Update the issue description with the PR URL so progress is traceable
|
|
77
|
-
5. **Merge via PR** — the only way code reaches `main`, and only after review/approval
|
|
78
|
-
|
|
79
|
-
Branch naming convention: `<type>/<ticket-id>-<short-description>` where type is `fix`, `feat`, `chore`, `refactor`, `perf`, or `docs`.
|
|
80
|
-
|
|
81
|
-
**This rule has NO exceptions.** Not for "small fixes", not for "just config changes", not for urgent hotfixes. Every change goes through a PR.
|
|
82
|
-
|
|
83
|
-
### PR Safety Rules
|
|
84
|
-
|
|
85
|
-
- **Never** use `git push --force` or `git commit --amend` on shared branches
|
|
86
|
-
- **Never** expose secrets in commits, PR descriptions, or terminal output (per Constitution #1)
|
|
87
|
-
- Use `git push --force-with-lease` only when explicitly asked and on personal branches
|
|
88
|
-
- If a secret is accidentally committed, immediately rotate it — git history is permanent
|
|
89
|
-
|
|
90
|
-
### Delivery Outcome (Required for Every Task)
|
|
91
|
-
|
|
92
|
-
Every task that produces code changes — whether a roadmap feature, bug fix, follow-up, data pipeline, or refactor — must deliver:
|
|
93
|
-
|
|
94
|
-
1. **Dedicated branch** — `<type>/<ticket-id>-<short-description>` created from `main`
|
|
95
|
-
2. **Atomic commits** — Each commit references the issue ID (e.g., `TAS-42: Add filter component`)
|
|
96
|
-
3. **Pushed branch** — Branch pushed to origin
|
|
97
|
-
4. **Open PR** — Use `gh` CLI to create the PR. **Do NOT merge** — PRs are opened for review only:
|
|
98
|
-
```bash
|
|
99
|
-
GH_PAGER=cat gh pr create --base main --title "TAS-XX: Short description" --body "Resolves TAS-XX"
|
|
100
|
-
```
|
|
101
|
-
5. **Task tracker linkage** — The issue is updated with the PR URL, and the PR description references the issue ID
|
|
102
|
-
|
|
103
69
|
## Build & Task Commands
|
|
104
70
|
|
|
105
71
|
Use the project's configured task runner for all build, test, lint, and serve commands. **Never invoke test runners or linters directly** — always use the task runner wrapper.
|
|
@@ -120,182 +86,70 @@ Follow markdown formatting and documentation standards when writing docs. For te
|
|
|
120
86
|
|
|
121
87
|
## AI Optimization
|
|
122
88
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
## Discovered Issues Policy
|
|
89
|
+
See [ai-optimization.instructions.md](ai-optimization.instructions.md) for batch processing, tool efficiency, and anti-patterns.
|
|
126
90
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
When you encounter a bug, error, or unexpected behavior that is unrelated to the current task:
|
|
130
|
-
|
|
131
|
-
1. **Check if already tracked:**
|
|
132
|
-
- Search `.github/customizations/KNOWN-ISSUES.md` for a matching entry
|
|
133
|
-
- If you have task tracker tools available, also search for open bugs (use `search_issues` or `list_issues` with bug label)
|
|
134
|
-
2. **If found tracked** — skip it, continue with your current work
|
|
135
|
-
3. **If NOT tracked** — you must act:
|
|
136
|
-
- **Unfixable limitation** (third-party constraint, platform restriction, upstream dependency) → add it to `.github/customizations/KNOWN-ISSUES.md` with: Issue ID, Status, Severity, Evidence, Root Cause, Solution Options
|
|
137
|
-
- **Fixable bug** → if you have task tracker tools, create a ticket with label `bug`, appropriate priority, and a clear description of the symptoms, reproduction steps, and affected files. If you do NOT have task tracker tools, add a `**Discovered Issues**` section to your output listing the bug details so the Team Lead can track it.
|
|
91
|
+
## Project Context
|
|
138
92
|
|
|
139
|
-
|
|
93
|
+
For project-specific context (apps, libraries, tech stack, ports, URLs), see [project.instructions.md](../customizations/project.instructions.md).
|
|
140
94
|
|
|
141
|
-
##
|
|
95
|
+
## Git Workflow
|
|
142
96
|
|
|
143
|
-
|
|
97
|
+
**NEVER commit or push directly to the `main` branch.** All changes go through a feature/fix branch and a pull request. Load the **git-workflow** skill for branch naming, PR rules, and the Delivery Outcome checklist.
|
|
144
98
|
|
|
145
|
-
|
|
99
|
+
## Discovered Issues Policy
|
|
146
100
|
|
|
147
|
-
|
|
101
|
+
> **⛔ No issue gets ignored.** Untracked bugs discovered during work are a quality gate failure.
|
|
148
102
|
|
|
149
|
-
|
|
150
|
-
2. **Proceed with implementation** — the work is still valuable without a ticket number
|
|
151
|
-
3. **Placeholder value for `tracker_issue`:**
|
|
152
|
-
- **No tracker configured** (no `task-management` slot bound in `skill-matrix.json`) → use `"N/A"`
|
|
153
|
-
- **Tracker configured but tools unavailable** → use the project prefix + `PENDING` (e.g., `"TAS-PENDING"`)
|
|
154
|
-
4. **Ask the user** to create the issues manually if tracking is critical for the task
|
|
155
|
-
5. After implementation, update commit messages and PR descriptions when issue IDs become available
|
|
103
|
+
When you encounter a bug unrelated to the current task: check if already tracked in `KNOWN-ISSUES.md` or the task tracker. If NOT tracked, track it (known issue entry or bug ticket). Never assume a pre-existing issue is somebody else's problem. See the **git-workflow** skill for the full procedure.
|
|
156
104
|
|
|
157
|
-
## Observability Logging
|
|
105
|
+
## Observability Logging
|
|
158
106
|
|
|
159
107
|
> **⛔ HARD GATE — This is a blocking requirement, not a suggestion.**
|
|
160
108
|
> Do NOT respond to the user until you have appended the required log records.
|
|
161
109
|
> A session without log records is a failed session — regardless of code quality.
|
|
162
110
|
|
|
163
|
-
**Every agent MUST log every session to
|
|
164
|
-
|
|
165
|
-
### What to log
|
|
166
|
-
|
|
167
|
-
| File | Who appends | When | Example command below |
|
|
168
|
-
|------|------------|------|----------------------|
|
|
169
|
-
| `sessions.ndjson` | **All agents** | After every session — always | ✅ |
|
|
170
|
-
| `delegations.ndjson` | **Team Lead** | After each delegation to a specialist agent | ✅ |
|
|
171
|
-
| `reviews.ndjson` | **Team Lead** (via fast-review skill) | After each fast review | ✅ |
|
|
172
|
-
| `panels.ndjson` | **Panel runner** (via panel majority vote skill) | After each majority-vote review | ✅ |
|
|
173
|
-
| `disputes.ndjson` | **Team Lead** (via dispute protocol) | After each dispute record | ✅ |
|
|
174
|
-
|
|
175
|
-
See `.github/customizations/logs/README.md` for the full schema of each record.
|
|
176
|
-
|
|
177
|
-
### How to log
|
|
178
|
-
|
|
179
|
-
Append one JSON line per task using `echo '...' >> <file>`. When the Team Lead works directly, use the agent role that best describes the work (e.g., `"agent": "Developer"`, `"agent": "UI-UX Expert"`). If a single conversation involves multiple distinct tasks, log one record per task.
|
|
180
|
-
|
|
181
|
-
**Session record** (ALL agents, EVERY session):
|
|
182
|
-
```bash
|
|
183
|
-
echo '{"timestamp":"2026-03-01T14:00:00Z","agent":"Developer","model":"claude-opus-4-6","task":"Fix login redirect bug","outcome":"success","duration_min":15,"files_changed":3,"retries":0,"lessons_added":[],"discoveries":[]}' >> .github/customizations/logs/sessions.ndjson
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
**Delegation record** (Team Lead only, **immediately after each delegation — not at session end**):
|
|
187
|
-
```bash
|
|
188
|
-
echo '{"timestamp":"2026-03-01T14:00:00Z","session_id":"feat/prj-57","agent":"Developer","model":"gemini-3.1-pro","tier":"standard","mechanism":"sub-agent","tracker_issue":"PRJ-57","outcome":"success","retries":0,"phase":2,"file_partition":["src/components/"]}' >> .github/customizations/logs/delegations.ndjson
|
|
189
|
-
```
|
|
190
|
-
Verify: `tail -1 .github/customizations/logs/delegations.ndjson`
|
|
191
|
-
|
|
192
|
-
> **`model` and `tier` must reflect the delegated agent's assignment from the agent registry** — not the Team Lead's own model.
|
|
193
|
-
|
|
194
|
-
**Fast review record** (Team Lead, **immediately after each fast review**):
|
|
195
|
-
```bash
|
|
196
|
-
echo '{"timestamp":"2026-03-01T14:30:00Z","tracker_issue":"PRJ-42","agent":"Developer","reviewer_model":"gpt-5-mini","verdict":"pass","attempt":1,"issues_critical":0,"issues_major":0,"issues_minor":2,"confidence":"high","escalated":false,"duration_sec":45}' >> .github/customizations/logs/reviews.ndjson
|
|
197
|
-
```
|
|
198
|
-
Verify: `tail -1 .github/customizations/logs/reviews.ndjson`
|
|
199
|
-
|
|
200
|
-
**Panel record** (Panel runner, **immediately after each panel majority vote**):
|
|
201
|
-
```bash
|
|
202
|
-
echo '{"timestamp":"2026-03-01T15:00:00Z","panel_key":"auth-review","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":3,"reviewer_model":"claude-opus-4-6","weighted":false,"attempt":1,"tracker_issue":"PRJ-42","artifacts_count":5}' >> .github/customizations/logs/panels.ndjson
|
|
203
|
-
```
|
|
204
|
-
Verify: `tail -1 .github/customizations/logs/panels.ndjson`
|
|
205
|
-
|
|
206
|
-
**Dispute record** (Team Lead, **immediately after each dispute**):
|
|
207
|
-
```bash
|
|
208
|
-
echo '{"timestamp":"2026-03-01T16:00:00Z","dispute_id":"DSP-001","tracker_issue":"PRJ-42","priority":"high","trigger":"panel-3x-block","implementing_agent":"Developer","reviewing_agents":["Reviewer","Panel (3x)"],"total_attempts":6,"est_tokens_spent":120000,"status":"pending","resolution_option_chosen":null,"resolved_at":null}' >> .github/customizations/logs/disputes.ndjson
|
|
209
|
-
```
|
|
210
|
-
Verify: `tail -1 .github/customizations/logs/disputes.ndjson`
|
|
211
|
-
|
|
212
|
-
### Pre-Response Logging Checklist
|
|
213
|
-
|
|
214
|
-
**STOP before responding to the user.** Verify each applicable item:
|
|
215
|
-
|
|
216
|
-
- [ ] **Session logged** — `sessions.ndjson` has a new line for this session (ALWAYS required)
|
|
217
|
-
- [ ] **Delegations logged** — `delegations.ndjson` has a line for **each** delegation (Team Lead only). Count delegations → count records → must match
|
|
218
|
-
- [ ] **Reviews logged** — `reviews.ndjson` has a line for **each** fast review performed. Count reviews → count records → must match
|
|
219
|
-
- [ ] **Panels logged** — `panels.ndjson` has a line for **each** panel review performed. Count panels → count records → must match
|
|
220
|
-
- [ ] **Disputes logged** — `disputes.ndjson` has a line for **each** dispute created. Count disputes → count records → must match
|
|
221
|
-
|
|
222
|
-
If ANY required log is missing, append it NOW before responding.
|
|
223
|
-
|
|
224
|
-
### Rules
|
|
225
|
-
|
|
226
|
-
- **Log before yielding to the user** — logging is the LAST action before responding. This is Constitution rule #6.
|
|
227
|
-
- **Log per task**, not per conversation. Multiple tasks = multiple records.
|
|
228
|
-
- **Never batch-log retrospectively** across sessions.
|
|
229
|
-
- **Verify the append succeeded** — if unsure, `tail -1` the file to confirm.
|
|
111
|
+
**Every agent MUST log every session** to `.github/customizations/logs/events.ndjson`. No exceptions. No threshold. No "too small to log." Load the **observability-logging** skill for CLI commands, record schemas, and the full logging checklist.
|
|
230
112
|
|
|
231
113
|
## Self-Improvement Protocol
|
|
232
114
|
|
|
233
115
|
> **⛔ HARD GATE — Lessons are the team's collective memory. Skipping them causes repeated failures.**
|
|
234
116
|
|
|
235
|
-
**Every agent must learn from mistakes and share knowledge.** This prevents the same pitfalls from being repeated across sessions.
|
|
236
|
-
|
|
237
117
|
1. **Before starting work:** Read `.github/customizations/LESSONS-LEARNED.md` — apply relevant lessons proactively. This is NOT optional.
|
|
238
|
-
2. **During execution:** If
|
|
239
|
-
|
|
240
|
-
- Tool call fails unexpectedly (discover correct parameter format)
|
|
241
|
-
- Workaround needed for platform limitation
|
|
242
|
-
- Docs are misleading (reality differs from documentation)
|
|
243
|
-
- Configuration surprise (default behavior differs from expectation)
|
|
244
|
-
- Error message is unhelpful (real cause was something else)
|
|
245
|
-
3. **Update source files:** If the lesson reveals a gap in instruction/skill files, update those files too
|
|
246
|
-
4. **Update instructions:** Proactively suggest updates to `.github/instructions/` or `.github/skills/` files when:
|
|
247
|
-
- The user had to intervene or correct the agent's approach
|
|
248
|
-
- Multiple back-and-forth attempts were needed to get something right
|
|
249
|
-
- A change touched files you wouldn't have guessed from the task description
|
|
250
|
-
- Something worked differently than expected (API quirk, tool behavior, config side-effect)
|
|
251
|
-
- A recurring pattern should be codified (workaround, convention, tool quirk)
|
|
252
|
-
|
|
253
|
-
**When NOT to update:** Don't add obvious patterns, standard practices, or things easily discoverable by reading a few files. Instruction files capture *tribal knowledge* — what isn't obvious from the code.
|
|
254
|
-
|
|
255
|
-
For the full protocol, load the **self-improvement** skill.
|
|
256
|
-
|
|
257
|
-
## Project Context
|
|
258
|
-
|
|
259
|
-
For project-specific context (apps, libraries, tech stack, ports, URLs), see [project.instructions.md](../customizations/project.instructions.md).
|
|
118
|
+
2. **During execution:** If you retry with a different approach and it works, use the **self-improvement** skill to add a lesson immediately.
|
|
119
|
+
3. **Update source files:** If the lesson reveals a gap in instruction/skill files, update those files too.
|
|
260
120
|
|
|
261
121
|
## Universal Agent Rules
|
|
262
122
|
|
|
263
123
|
These rules apply to ALL specialist agents automatically. **Do not duplicate them in individual agent files.**
|
|
264
124
|
|
|
265
|
-
1. **Never delegate** — Specialist agents complete their own work and return results. Never invoke the Team Lead or spawn sub-agents.
|
|
266
|
-
2. **Follow the Discovered Issues Policy** — Track any pre-existing bugs found during your work (see
|
|
267
|
-
3. **Read and update lessons** —
|
|
268
|
-
4. **Log every session** —
|
|
269
|
-
|
|
270
|
-
## Base Output Contract
|
|
125
|
+
1. **Never delegate** — Specialist agents complete their own work and return results. Never invoke the Team Lead or spawn sub-agents.
|
|
126
|
+
2. **Follow the Discovered Issues Policy** — Track any pre-existing bugs found during your work (see above).
|
|
127
|
+
3. **Read and update lessons** — See Self-Improvement Protocol above.
|
|
128
|
+
4. **Log every session** — See Observability Logging above. This is Constitution rule #6 — a blocking gate, not optional.
|
|
271
129
|
|
|
272
|
-
|
|
130
|
+
## Pre-Response Quality Gate
|
|
273
131
|
|
|
274
|
-
|
|
275
|
-
- `sessions.ndjson` — ALWAYS (every agent, every session)
|
|
276
|
-
- `delegations.ndjson` — if delegations occurred (Team Lead only)
|
|
277
|
-
- `reviews.ndjson` — if fast reviews occurred
|
|
278
|
-
- `panels.ndjson` — if panel reviews occurred
|
|
279
|
-
- `disputes.ndjson` — if disputes were created
|
|
280
|
-
- **Discovered Issues** — Pre-existing bugs or anomalies found during work, with tracking action taken per the Discovered Issues Policy
|
|
281
|
-
- **Lessons Applied** — Lessons from `.github/customizations/LESSONS-LEARNED.md` that influenced this work, and any new lessons added
|
|
132
|
+
> **⛔ STOP before responding to the user.** Run through this checklist. If ANY required item is missing, fix it NOW.
|
|
282
133
|
|
|
283
|
-
|
|
134
|
+
- [ ] **Lessons read** — `LESSONS-LEARNED.md` was read at session start
|
|
135
|
+
- [ ] **Lessons captured** — If any retry occurred, a new lesson was added via the **self-improvement** skill
|
|
136
|
+
- [ ] **Discovered issues tracked** — Any pre-existing bugs found were tracked (Discovered Issues Policy)
|
|
137
|
+
- [ ] **Lint/type/test pass** — No new errors introduced; verification ran after code changes (Constitution rule #5)
|
|
138
|
+
- [ ] **Session logged** — `events.ndjson` has a new `session` record (Constitution rule #6 — ALWAYS required)
|
|
139
|
+
- [ ] **Delegations logged** — `events.ndjson` has a `delegation` record for each delegation (Team Lead only)
|
|
140
|
+
- [ ] **Reviews logged** — `events.ndjson` has a `review` record for each fast review (if any)
|
|
141
|
+
- [ ] **Panels logged** — `events.ndjson` has a `panel` record for each panel review (if any)
|
|
284
142
|
|
|
285
|
-
|
|
143
|
+
Load the **observability-logging** skill for CLI commands, Base Output Contract, and detailed schemas.
|
|
286
144
|
|
|
287
|
-
|
|
145
|
+
## Workflow & Governance Skills
|
|
288
146
|
|
|
289
|
-
|
|
147
|
+
These skills provide detailed procedures. Load when their phase is reached.
|
|
290
148
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
- [ ] **Delegations logged** — `delegations.ndjson` has a line for each delegation (Team Lead only)
|
|
297
|
-
- [ ] **Reviews logged** — `reviews.ndjson` has a line for each fast review performed (if any)
|
|
298
|
-
- [ ] **Panels logged** — `panels.ndjson` has a line for each panel review performed (if any)
|
|
299
|
-
- [ ] **Disputes logged** — `disputes.ndjson` has a line for each dispute created (if any)
|
|
149
|
+
| Concern | Skill |
|
|
150
|
+
|---------|-------|
|
|
151
|
+
| Branch naming, PR rules, delivery outcome, task tracking | **git-workflow** |
|
|
152
|
+
| Log CLI commands, record schemas, output contracts | **observability-logging** |
|
|
153
|
+
| Lesson writing CLI, categories, quality standards | **self-improvement** |
|
|
300
154
|
|
|
301
155
|
<!-- End of Coding Standards -->
|
|
@@ -154,7 +154,7 @@ Before running any generator, complete these steps:
|
|
|
154
154
|
- Read the error message carefully
|
|
155
155
|
- Common causes: missing required options, invalid values, conflicting files, missing dependencies
|
|
156
156
|
- Adjust options and retry
|
|
157
|
-
-
|
|
157
|
+
- Use the **self-improvement** skill to add a lesson if the fix was non-obvious
|
|
158
158
|
|
|
159
159
|
### Phase 4: Post-Generation
|
|
160
160
|
|
|
@@ -142,11 +142,9 @@ Files are organized into subdirectories by domain:
|
|
|
142
142
|
├── project/ # Project management config
|
|
143
143
|
│ ├── docs-structure.md
|
|
144
144
|
│ └── <tracker>-config.md # e.g. linear-config.md, jira-config.md
|
|
145
|
-
└── logs/ # Append-only NDJSON
|
|
145
|
+
└── logs/ # Append-only NDJSON event log
|
|
146
146
|
├── README.md
|
|
147
|
-
|
|
148
|
-
├── delegations.ndjson
|
|
149
|
-
└── panels.ndjson
|
|
147
|
+
└── events.ndjson
|
|
150
148
|
```
|
|
151
149
|
|
|
152
150
|
#### Root Files (always create)
|
|
@@ -241,10 +239,8 @@ Files are organized into subdirectories by domain:
|
|
|
241
239
|
|
|
242
240
|
#### `logs/` — Session Logs (always create)
|
|
243
241
|
|
|
244
|
-
16. **`logs/README.md`** — Schema documentation for the NDJSON log
|
|
245
|
-
17. **`logs/
|
|
246
|
-
18. **`logs/delegations.ndjson`** — Empty file for delegation log entries
|
|
247
|
-
19. **`logs/panels.ndjson`** — Empty file for panel review log entries
|
|
242
|
+
16. **`logs/README.md`** — Schema documentation for the unified NDJSON event log
|
|
243
|
+
17. **`logs/events.ndjson`** — Empty file for all structured event log entries (sessions, delegations, reviews, panels, disputes)
|
|
248
244
|
|
|
249
245
|
### Phase 3: Cross-Reference Verification
|
|
250
246
|
|
|
@@ -93,7 +93,7 @@ Delegate to the appropriate specialist agent via **sub-agent** (inline). For bug
|
|
|
93
93
|
- **File paths** — Exact files to read and modify
|
|
94
94
|
- **Reproduction steps** — So the agent can verify the fix
|
|
95
95
|
- **Boundaries** — "Only modify files listed above. Fix the bug, do not refactor surrounding code."
|
|
96
|
-
- **Self-improvement reminder** — include per
|
|
96
|
+
- **Self-improvement reminder** — include per the **self-improvement** skill
|
|
97
97
|
|
|
98
98
|
#### Implementation Rules
|
|
99
99
|
|
|
@@ -121,13 +121,13 @@ Every bug fix must pass ALL applicable gates:
|
|
|
121
121
|
|
|
122
122
|
### 6. Delivery
|
|
123
123
|
|
|
124
|
-
Follow the **Delivery Outcome** defined in
|
|
124
|
+
Follow the **Delivery Outcome** defined in the **git-workflow** skill — commit, push, open PR (not merged), and link to the tracker.
|
|
125
125
|
|
|
126
126
|
### 7. Wrap Up
|
|
127
127
|
|
|
128
128
|
1. **Move tracker issue to Done** — Only after all validation passes
|
|
129
129
|
2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in `.github/customizations/KNOWN-ISSUES.md`
|
|
130
|
-
3. **Capture lessons** — If the root cause reveals a pattern that other agents should know about,
|
|
130
|
+
3. **Capture lessons** — If the root cause reveals a pattern that other agents should know about, use the **self-improvement** skill to add a lesson
|
|
131
131
|
4. **Note prevention** — If this class of bug could be caught earlier (by a lint rule, test, or type check), note that in the tracker issue as a follow-up suggestion
|
|
132
132
|
|
|
133
133
|
### 8. Completion Criteria
|
|
@@ -142,7 +142,7 @@ The bug fix is complete when:
|
|
|
142
142
|
- [ ] Bug verified fixed in the browser
|
|
143
143
|
- [ ] No regressions in adjacent functionality
|
|
144
144
|
- [ ] Both apps checked if shared code was modified
|
|
145
|
-
- [ ] Delivery Outcome completed (see
|
|
145
|
+
- [ ] Delivery Outcome completed (see the **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
|
|
146
146
|
- [ ] Tracker issue moved to Done
|
|
147
147
|
- [ ] Known issues updated if applicable
|
|
148
148
|
- [ ] Lessons learned captured if any retries occurred
|
|
@@ -64,7 +64,7 @@ Every subtask must be tracked. **No issue = no implementation.** This step produ
|
|
|
64
64
|
|
|
65
65
|
#### Self-Improvement
|
|
66
66
|
|
|
67
|
-
Include the self-improvement reminder in every delegation prompt (see
|
|
67
|
+
Include the self-improvement reminder in every delegation prompt (see the **self-improvement** skill).
|
|
68
68
|
|
|
69
69
|
#### Visual Consistency
|
|
70
70
|
|
|
@@ -91,7 +91,7 @@ Every subtask must pass ALL gates before being marked Done:
|
|
|
91
91
|
|
|
92
92
|
### 5. Delivery
|
|
93
93
|
|
|
94
|
-
Follow the **Delivery Outcome** defined in
|
|
94
|
+
Follow the **Delivery Outcome** defined in the **git-workflow** skill — commit, push, open PR (not merged), and link to the tracker.
|
|
95
95
|
|
|
96
96
|
### 6. Documentation & Traceability
|
|
97
97
|
|
|
@@ -127,5 +127,5 @@ The roadmap task is complete when:
|
|
|
127
127
|
- [ ] Documentation updated (roadmap, known issues, decisions)
|
|
128
128
|
- [ ] Panel review passed for any high-stakes changes
|
|
129
129
|
- [ ] Roadmap item marked complete in `.github/customizations/project/roadmap.md`
|
|
130
|
-
- [ ] Delivery Outcome completed (see
|
|
130
|
+
- [ ] Delivery Outcome completed (see the **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
|
|
131
131
|
- [ ] Lessons learned captured if any retries occurred
|
|
@@ -84,7 +84,7 @@ Delegate to the appropriate specialist agent(s). Since follow-ups are scoped and
|
|
|
84
84
|
- **Where** — exact file paths to read and modify
|
|
85
85
|
- **How to verify** — what the result should look like or how to test it
|
|
86
86
|
- **Boundaries** — "Only modify files listed above. Do not refactor unrelated code."
|
|
87
|
-
- **Self-improvement reminder** — include per
|
|
87
|
+
- **Self-improvement reminder** — include per the **self-improvement** skill
|
|
88
88
|
|
|
89
89
|
#### Implementation Rules
|
|
90
90
|
|
|
@@ -110,7 +110,7 @@ Every follow-up, no matter how small, must pass these gates:
|
|
|
110
110
|
|
|
111
111
|
### 6. Delivery
|
|
112
112
|
|
|
113
|
-
If triage determined this follow-up needs tracker tracking, follow the **Delivery Outcome** defined in
|
|
113
|
+
If triage determined this follow-up needs tracker tracking, follow the **Delivery Outcome** defined in the **git-workflow** skill — commit, push, open PR (not merged), and link to the tracker.
|
|
114
114
|
|
|
115
115
|
If triage determined no tracker tracking is needed (pure cosmetic/isolated/trivial), commit the changes to the current working branch. A dedicated branch and PR are not required because the Team Lead will include these changes in the parent task's existing PR — the "every change goes through a PR" rule is still satisfied via the parent PR.
|
|
116
116
|
|
|
@@ -138,6 +138,6 @@ The follow-up is complete when:
|
|
|
138
138
|
- [ ] **Visual changes verified in Chrome with screenshot taken as proof**
|
|
139
139
|
- [ ] No regressions in adjacent functionality
|
|
140
140
|
- [ ] Shared component changes tested across all consuming apps
|
|
141
|
-
- [ ] Delivery Outcome completed if tracked (see
|
|
141
|
+
- [ ] Delivery Outcome completed if tracked (see the **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
|
|
142
142
|
- [ ] Lessons learned captured if any retries occurred
|
|
143
143
|
- [ ] Known issues updated if a new limitation was discovered
|
|
@@ -113,4 +113,4 @@ After resolving comments, report:
|
|
|
113
113
|
- **Preserve the reviewer's intent** — don't just technically satisfy the comment, address the underlying concern
|
|
114
114
|
- **Don't over-fix** — resolve only what was commented on. Save unrelated improvements for a separate PR
|
|
115
115
|
- **Respond to every comment** — nothing should be silently ignored
|
|
116
|
-
- **Self-improvement** — Follow
|
|
116
|
+
- **Self-improvement** — Follow the **self-improvement** skill
|
|
@@ -53,13 +53,13 @@ Load relevant skills before writing code.
|
|
|
53
53
|
|
|
54
54
|
**When:** Before the agent yields control back to the user — every time, unconditionally.
|
|
55
55
|
|
|
56
|
-
> **⛔ HARD GATE — Run the Pre-Response Quality Gate checklist from
|
|
56
|
+
> **⛔ HARD GATE — Run the Pre-Response Quality Gate checklist from the **observability-logging** skill before responding.**
|
|
57
57
|
> A session without log records is a failed session. A session without lessons captured after retries is a failed session.
|
|
58
58
|
|
|
59
59
|
### Actions
|
|
60
60
|
|
|
61
61
|
1. **Call Session Guard** (Team Lead only) — Delegate to the **Session Guard** agent with a session summary (delegations, retries, discoveries, files changed). Execute any fix commands it returns. This replaces the manual Pre-Response Quality Gate checklist — the guard runs it automatically with a fresh context window.
|
|
62
|
-
2. **For specialist agents** (not Team Lead) — Run the Pre-Response Quality Gate checklist from
|
|
62
|
+
2. **For specialist agents** (not Team Lead) — Run the Pre-Response Quality Gate checklist from the **observability-logging** skill manually. Specialist agents don't have access to the Session Guard.
|
|
63
63
|
3. **Save checkpoint** (Team Lead only) — If work is incomplete, write `.github/customizations/SESSION-CHECKPOINT.md` with current state so the next session can resume. Load **session-checkpoints** skill for format.
|
|
64
64
|
4. **Memory merge check** — If `LESSONS-LEARNED.md` has grown significantly (5+ new entries this session), flag for memory merge consideration.
|
|
65
65
|
5. **Clean up** — Remove any temporary files created during the session (e.g., test fixtures, debug outputs).
|
|
@@ -67,9 +67,9 @@ Load relevant skills before writing code.
|
|
|
67
67
|
### Template for Delegation Prompts
|
|
68
68
|
|
|
69
69
|
```
|
|
70
|
-
**Session End:** Run the Pre-Response Quality Gate from
|
|
71
|
-
- Log your session
|
|
72
|
-
- If you retried anything with a different approach that worked, add a lesson
|
|
70
|
+
**Session End:** Run the Pre-Response Quality Gate from the **observability-logging** skill:
|
|
71
|
+
- Log your session using the observability-logging skill's session record command (Constitution rule #6)
|
|
72
|
+
- If you retried anything with a different approach that worked, use the **self-improvement** skill to add a lesson
|
|
73
73
|
- Track any discovered issues in KNOWN-ISSUES.md or a tracker ticket
|
|
74
74
|
- Clean up temp files
|
|
75
75
|
```
|
|
@@ -92,26 +92,26 @@ Run the 5-point Pre-Delegation Checks from the Team Lead agent file: (1) Tracker
|
|
|
92
92
|
|
|
93
93
|
### Actions
|
|
94
94
|
|
|
95
|
-
0. **Log the delegation** —
|
|
96
|
-
|
|
97
|
-
1. **Fast review (mandatory)** — Run the `fast-review` skill against the agent's output. This is a **non-skippable gate**. See the fast-review skill for the full procedure (single reviewer sub-agent, automatic retry, escalation). Log the review to `reviews.ndjson` immediately after. Only after the fast review passes do you proceed to the remaining post-delegate actions below.
|
|
95
|
+
0. **Log the delegation (⛔ hard gate)** — Use the **observability-logging** skill's delegation record command. Do NOT proceed to review or any other action until the delegation is logged and verified.
|
|
96
|
+
1. **Fast review (mandatory)** — Run the `fast-review` skill against the agent's output. This is a **non-skippable gate**. See the fast-review skill for the full procedure (single reviewer sub-agent, automatic retry, escalation). **Log the review (⛔ hard gate)** using the **observability-logging** skill's review record command immediately after — do NOT proceed until logged. Only after both the fast review passes and the review is logged do you proceed to the remaining post-delegate actions below.
|
|
98
97
|
2. **Verify output** — Read changed files. Check that changes stay within the agent's file partition.
|
|
99
98
|
2. **Run verification** — Execute appropriate checks: lint, type-check, tests, or visual inspection.
|
|
100
99
|
3. **Check acceptance criteria** — Compare output against the tracker issue's acceptance criteria. Each criterion must be independently verified.
|
|
101
100
|
4. **Discovered issues tracked** — Verify the agent followed the Discovered Issues Policy. If they found issues, check that they're in KNOWN-ISSUES.md or a new tracker ticket.
|
|
102
|
-
5. **Lessons captured** — If the agent retried anything, verify a lesson was added
|
|
101
|
+
5. **Lessons captured** — If the agent retried anything, verify a lesson was added via the **self-improvement** skill.
|
|
103
102
|
6. **Update tracker** — Move the issue to Done (if passing) or add failure notes and re-delegate (if failing).
|
|
104
103
|
|
|
105
104
|
### Quick Checklist
|
|
106
105
|
|
|
107
106
|
```
|
|
108
107
|
Post-Delegate:
|
|
109
|
-
☐ Delegation logged
|
|
108
|
+
☐ ⛔ Delegation logged (observability-logging skill — verify with tail -1) — BLOCKING
|
|
110
109
|
☐ Changed files reviewed
|
|
111
110
|
☐ Files within partition
|
|
112
111
|
☐ Lint/test/build passes
|
|
113
112
|
☐ Fast review PASS (mandatory — load fast-review skill)
|
|
114
|
-
☐ Review logged
|
|
113
|
+
☐ ⛔ Review logged (observability-logging skill — verify with tail -1) — BLOCKING
|
|
114
|
+
☐ ⛔ Panel logged if escalated (observability-logging skill — verify with tail -1) — BLOCKING
|
|
115
115
|
☐ Acceptance criteria met
|
|
116
116
|
☐ Discovered issues tracked (not ignored)
|
|
117
117
|
☐ Lessons captured (if retries occurred)
|
|
@@ -70,7 +70,7 @@ Return a structured summary with:
|
|
|
70
70
|
**Note:** Follow the Structured Output Contract from the team-lead-reference skill. Include all standard fields plus agent-specific extensions.
|
|
71
71
|
|
|
72
72
|
### Self-Improvement
|
|
73
|
-
Read `.github/customizations/LESSONS-LEARNED.md` before starting. If you retry any command/tool with a different approach that works,
|
|
73
|
+
Read `.github/customizations/LESSONS-LEARNED.md` before starting. If you retry any command/tool with a different approach that works, use the **self-improvement** skill to add a lesson immediately.
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
For simpler tasks (score 1-3), the existing prompt format (objective + files + criteria) is sufficient. Don't over-engineer delegation for trivial work.
|
|
@@ -221,24 +221,9 @@ CONFIDENCE: low | medium | high
|
|
|
221
221
|
|
|
222
222
|
## Logging
|
|
223
223
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
{
|
|
228
|
-
"timestamp": "2026-02-28T14:30:00Z",
|
|
229
|
-
"tracker_issue": "PRJ-42",
|
|
230
|
-
"agent": "Developer",
|
|
231
|
-
"reviewer_model": "gpt-5-mini",
|
|
232
|
-
"verdict": "pass",
|
|
233
|
-
"attempt": 1,
|
|
234
|
-
"issues_critical": 0,
|
|
235
|
-
"issues_major": 0,
|
|
236
|
-
"issues_minor": 2,
|
|
237
|
-
"confidence": "high",
|
|
238
|
-
"escalated": false,
|
|
239
|
-
"duration_sec": 45
|
|
240
|
-
}
|
|
241
|
-
```
|
|
224
|
+
> **⛔ HARD GATE — Do NOT proceed to the next task or accept the review result until the review is logged.**
|
|
225
|
+
|
|
226
|
+
After each fast review, log the result using the **observability-logging** skill's review record command. See the skill for the exact CLI syntax, required fields, and verify step. An unlogged review is a failed review.
|
|
242
227
|
|
|
243
228
|
## Integration with Existing Workflow
|
|
244
229
|
|
|
@@ -326,7 +311,7 @@ For autonomous overnight sessions, fast review is the primary quality gate. Addi
|
|
|
326
311
|
|
|
327
312
|
## Metrics & Continuous Improvement
|
|
328
313
|
|
|
329
|
-
Track these metrics from `
|
|
314
|
+
Track these metrics from `events.ndjson` (filter by `"type":"review"`) to optimize the review process:
|
|
330
315
|
|
|
331
316
|
| Metric | Target | Action if Off-Target |
|
|
332
317
|
|--------|--------|---------------------|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow
|
|
3
|
+
description: "Git branching, PR workflow, delivery requirements, discovered issues policy, and task tracking conventions. Load when committing, pushing, or opening PRs."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Git Workflow & Delivery
|
|
7
|
+
|
|
8
|
+
## Git Workflow
|
|
9
|
+
|
|
10
|
+
**NEVER commit or push directly to the `main` branch.** All changes must go through a feature/fix branch and a pull request.
|
|
11
|
+
|
|
12
|
+
1. **Create a branch** from `main` before making any changes: `git checkout -b <type>/<ticket-id>-<short-description>` (e.g., `fix/tas-21-places-redirect-loop`, `feat/tas-15-new-filter`)
|
|
13
|
+
2. **Commit to the branch** — never to `main`. Reference the task tracker issue ID in every commit message (e.g., `TAS-42: Fix token refresh logic`)
|
|
14
|
+
3. **Push the branch** and open a pull request on GitHub. **Do NOT merge** — PRs are opened for review only
|
|
15
|
+
4. **Link the PR to the task tracker** — Update the issue description with the PR URL so progress is traceable
|
|
16
|
+
5. **Merge via PR** — the only way code reaches `main`, and only after review/approval
|
|
17
|
+
|
|
18
|
+
Branch naming convention: `<type>/<ticket-id>-<short-description>` where type is `fix`, `feat`, `chore`, `refactor`, `perf`, or `docs`.
|
|
19
|
+
|
|
20
|
+
**This rule has NO exceptions.** Not for "small fixes", not for "just config changes", not for urgent hotfixes. Every change goes through a PR.
|
|
21
|
+
|
|
22
|
+
### PR Safety Rules
|
|
23
|
+
|
|
24
|
+
- **Never** use `git push --force` or `git commit --amend` on shared branches
|
|
25
|
+
- **Never** expose secrets in commits, PR descriptions, or terminal output (per Constitution #1)
|
|
26
|
+
- Use `git push --force-with-lease` only when explicitly asked and on personal branches
|
|
27
|
+
- If a secret is accidentally committed, immediately rotate it — git history is permanent
|
|
28
|
+
|
|
29
|
+
### Delivery Outcome (Required for Every Task)
|
|
30
|
+
|
|
31
|
+
Every task that produces code changes — whether a roadmap feature, bug fix, follow-up, data pipeline, or refactor — must deliver:
|
|
32
|
+
|
|
33
|
+
1. **Dedicated branch** — `<type>/<ticket-id>-<short-description>` created from `main`
|
|
34
|
+
2. **Atomic commits** — Each commit references the issue ID (e.g., `TAS-42: Add filter component`)
|
|
35
|
+
3. **Pushed branch** — Branch pushed to origin
|
|
36
|
+
4. **Open PR** — Use `gh` CLI to create the PR. **Do NOT merge** — PRs are opened for review only:
|
|
37
|
+
```bash
|
|
38
|
+
GH_PAGER=cat gh pr create --base main --title "TAS-XX: Short description" --body "Resolves TAS-XX"
|
|
39
|
+
```
|
|
40
|
+
5. **Task tracker linkage** — The issue is updated with the PR URL, and the PR description references the issue ID
|
|
41
|
+
|
|
42
|
+
## Discovered Issues Policy
|
|
43
|
+
|
|
44
|
+
> **⛔ No issue gets ignored.** Untracked bugs discovered during work are a quality gate failure.
|
|
45
|
+
|
|
46
|
+
When you encounter a bug, error, or unexpected behavior that is unrelated to the current task:
|
|
47
|
+
|
|
48
|
+
1. **Check if already tracked:**
|
|
49
|
+
- Search `.github/customizations/KNOWN-ISSUES.md` for a matching entry
|
|
50
|
+
- If you have task tracker tools available, also search for open bugs (use `search_issues` or `list_issues` with bug label)
|
|
51
|
+
2. **If found tracked** — skip it, continue with your current work
|
|
52
|
+
3. **If NOT tracked** — you must act:
|
|
53
|
+
- **Unfixable limitation** (third-party constraint, platform restriction, upstream dependency) → add it to `.github/customizations/KNOWN-ISSUES.md` with: Issue ID, Status, Severity, Evidence, Root Cause, Solution Options
|
|
54
|
+
- **Fixable bug** → if you have task tracker tools, create a ticket with label `bug`, appropriate priority, and a clear description of the symptoms, reproduction steps, and affected files. If you do NOT have task tracker tools, add a `**Discovered Issues**` section to your output listing the bug details so the Team Lead can track it.
|
|
55
|
+
|
|
56
|
+
Never assume a pre-existing issue is somebody else's problem. If it's not tracked, track it.
|
|
57
|
+
|
|
58
|
+
## Task Tracking
|
|
59
|
+
|
|
60
|
+
Feature work is tracked in the **task tracker** (see `tracker-config.md` for project details). The Team Lead agent creates and updates issues via MCP. For conventions, load the **task-management** skill.
|
|
61
|
+
|
|
62
|
+
### When Task Tracker MCP Tools Are Unavailable
|
|
63
|
+
|
|
64
|
+
If task tracker MCP tools are not available in the current session, do NOT block on issue creation. Instead:
|
|
65
|
+
|
|
66
|
+
1. **Document planned issues** in your output with the title, description, and acceptance criteria you would have used
|
|
67
|
+
2. **Proceed with implementation** — the work is still valuable without a ticket number
|
|
68
|
+
3. **Placeholder value for `tracker_issue`:**
|
|
69
|
+
- **No tracker configured** (no `task-management` slot bound in `skill-matrix.json`) → use `"N/A"`
|
|
70
|
+
- **Tracker configured but tools unavailable** → use the project prefix + `PENDING` (e.g., `"TAS-PENDING"`)
|
|
71
|
+
4. **Ask the user** to create the issues manually if tracking is critical for the task
|
|
72
|
+
5. After implementation, update commit messages and PR descriptions when issue IDs become available
|
|
@@ -49,7 +49,7 @@ Each lesson has a natural home in the instruction/skill hierarchy:
|
|
|
49
49
|
| `cms` | The skill mapped by the `cms` slot in the skill matrix |
|
|
50
50
|
| `database` | The skill mapped by the `database` slot in the skill matrix |
|
|
51
51
|
| `browser-testing` | The skill mapped by the `e2e-testing` slot in the skill matrix |
|
|
52
|
-
| `git-workflow` | `.github/
|
|
52
|
+
| `git-workflow` | `.github/skills/git-workflow/SKILL.md` |
|
|
53
53
|
| `deployment` | `.github/skills/deployment-infrastructure/SKILL.md` |
|
|
54
54
|
| `delegation` | `.github/agents/team-lead.agent.md` or `.github/skills/team-lead-reference/SKILL.md` |
|
|
55
55
|
| `testing` | `.github/skills/testing-workflow/SKILL.md` |
|