opencastle 0.7.0 → 0.8.1
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 +30 -3
- package/bin/cli.mjs +2 -0
- package/dist/cli/adapters/claude-code.d.ts +2 -5
- package/dist/cli/adapters/claude-code.d.ts.map +1 -1
- package/dist/cli/adapters/claude-code.js +12 -251
- package/dist/cli/adapters/claude-code.js.map +1 -1
- package/dist/cli/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/adapters/cursor.js +3 -17
- package/dist/cli/adapters/cursor.js.map +1 -1
- package/dist/cli/adapters/frontmatter.d.ts +26 -0
- package/dist/cli/adapters/frontmatter.d.ts.map +1 -0
- package/dist/cli/adapters/frontmatter.js +40 -0
- package/dist/cli/adapters/frontmatter.js.map +1 -0
- package/dist/cli/adapters/index.d.ts +5 -0
- package/dist/cli/adapters/index.d.ts.map +1 -0
- package/dist/cli/adapters/index.js +9 -0
- package/dist/cli/adapters/index.js.map +1 -0
- package/dist/cli/adapters/opencode.d.ts +2 -5
- package/dist/cli/adapters/opencode.d.ts.map +1 -1
- package/dist/cli/adapters/opencode.js +12 -250
- package/dist/cli/adapters/opencode.js.map +1 -1
- package/dist/cli/adapters/single-file-base.d.ts +40 -0
- package/dist/cli/adapters/single-file-base.d.ts.map +1 -0
- package/dist/cli/adapters/single-file-base.js +246 -0
- package/dist/cli/adapters/single-file-base.js.map +1 -0
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +3 -2
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/detect.d.ts.map +1 -1
- package/dist/cli/detect.js +13 -11
- package/dist/cli/detect.js.map +1 -1
- package/dist/cli/doctor.d.ts +3 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +205 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +31 -19
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run/schema.d.ts +1 -5
- package/dist/cli/run/schema.d.ts.map +1 -1
- package/dist/cli/run/schema.js +6 -330
- package/dist/cli/run/schema.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +14 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/types.d.ts +0 -5
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +4 -17
- package/dist/cli/update.js.map +1 -1
- package/package.json +7 -2
- package/src/cli/adapters/claude-code.ts +13 -304
- package/src/cli/adapters/cursor.ts +3 -23
- package/src/cli/adapters/frontmatter.ts +47 -0
- package/src/cli/adapters/index.ts +13 -0
- package/src/cli/adapters/opencode.ts +12 -301
- package/src/cli/adapters/single-file-base.ts +320 -0
- package/src/cli/dashboard.ts +3 -2
- package/src/cli/detect.ts +19 -15
- package/src/cli/doctor.ts +235 -0
- package/src/cli/init.ts +31 -24
- package/src/cli/run/schema.ts +7 -365
- package/src/cli/run.ts +17 -1
- package/src/cli/types.ts +0 -6
- package/src/cli/update.ts +5 -23
- package/src/dashboard/dist/_astro/{index.CWVzbF4T.css → index.Bnq19_1M.css} +1 -1
- package/src/dashboard/dist/index.html +170 -11
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/seed-data/reviews.ndjson +6 -0
- package/src/dashboard/src/pages/index.astro +213 -10
- package/src/dashboard/src/styles/dashboard.css +196 -0
- package/src/orchestrator/agent-workflows/bug-fix.md +2 -2
- package/src/orchestrator/agent-workflows/data-pipeline.md +8 -8
- package/src/orchestrator/agent-workflows/database-migration.md +2 -2
- package/src/orchestrator/agent-workflows/feature-implementation.md +12 -5
- package/src/orchestrator/agent-workflows/performance-optimization.md +2 -2
- package/src/orchestrator/agent-workflows/refactoring.md +2 -2
- package/src/orchestrator/agent-workflows/schema-changes.md +2 -2
- package/src/orchestrator/agent-workflows/security-audit.md +2 -2
- package/src/orchestrator/agents/data-expert.agent.md +2 -2
- package/src/orchestrator/agents/researcher.agent.md +0 -16
- package/src/orchestrator/agents/team-lead.agent.md +17 -6
- package/src/orchestrator/customizations/AGENT-PERFORMANCE.md +1 -3
- package/src/orchestrator/prompts/bootstrap-customizations.prompt.md +1 -1
- package/src/orchestrator/prompts/bug-fix.prompt.md +11 -6
- package/src/orchestrator/prompts/implement-feature.prompt.md +9 -4
- package/src/orchestrator/prompts/quick-refinement.prompt.md +9 -5
- package/src/orchestrator/prompts/resolve-pr-comments.prompt.md +18 -4
- package/src/orchestrator/skills/agent-hooks/SKILL.md +4 -2
- package/src/orchestrator/skills/fast-review/SKILL.md +15 -4
- package/src/orchestrator/skills/self-improvement/SKILL.md +1 -1
- package/src/orchestrator/skills/validation-gates/SKILL.md +152 -15
- package/src/orchestrator/prompts/metrics-report.prompt.md +0 -144
|
@@ -1337,3 +1337,199 @@ body {
|
|
|
1337
1337
|
display: none;
|
|
1338
1338
|
}
|
|
1339
1339
|
}
|
|
1340
|
+
|
|
1341
|
+
/* ---------- Filter Bar ---------- */
|
|
1342
|
+
.filter-bar {
|
|
1343
|
+
display: flex;
|
|
1344
|
+
flex-wrap: wrap;
|
|
1345
|
+
gap: 12px;
|
|
1346
|
+
align-items: flex-end;
|
|
1347
|
+
padding: 16px 20px;
|
|
1348
|
+
background: var(--bg-secondary);
|
|
1349
|
+
border: 1px solid var(--border-color);
|
|
1350
|
+
border-radius: 12px;
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
.filter-group {
|
|
1354
|
+
display: flex;
|
|
1355
|
+
flex-direction: column;
|
|
1356
|
+
gap: 4px;
|
|
1357
|
+
min-width: 0;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
.filter-label {
|
|
1361
|
+
font-size: 0.6875rem;
|
|
1362
|
+
font-weight: 500;
|
|
1363
|
+
color: var(--text-tertiary);
|
|
1364
|
+
text-transform: uppercase;
|
|
1365
|
+
letter-spacing: 0.05em;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
.filter-input,
|
|
1369
|
+
.filter-select {
|
|
1370
|
+
height: 34px;
|
|
1371
|
+
padding: 0 10px;
|
|
1372
|
+
font-size: 0.8125rem;
|
|
1373
|
+
color: var(--text-primary);
|
|
1374
|
+
background: var(--bg-tertiary);
|
|
1375
|
+
border: 1px solid var(--border-color);
|
|
1376
|
+
border-radius: 8px;
|
|
1377
|
+
outline: none;
|
|
1378
|
+
transition: border-color var(--transition-fast);
|
|
1379
|
+
font-family: inherit;
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
.filter-input:focus,
|
|
1383
|
+
.filter-select:focus {
|
|
1384
|
+
border-color: var(--border-accent);
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
.filter-input {
|
|
1388
|
+
width: 140px;
|
|
1389
|
+
color-scheme: dark;
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
.filter-select {
|
|
1393
|
+
min-width: 140px;
|
|
1394
|
+
cursor: pointer;
|
|
1395
|
+
appearance: none;
|
|
1396
|
+
-webkit-appearance: none;
|
|
1397
|
+
background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235a5a6e' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
1398
|
+
background-repeat: no-repeat;
|
|
1399
|
+
background-position: right 10px center;
|
|
1400
|
+
padding-right: 28px;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
.filter-reset {
|
|
1404
|
+
height: 34px;
|
|
1405
|
+
font-size: 0.75rem;
|
|
1406
|
+
}
|
|
1407
|
+
|
|
1408
|
+
/* ---------- Dashboard Buttons ---------- */
|
|
1409
|
+
.dash-btn {
|
|
1410
|
+
display: inline-flex;
|
|
1411
|
+
align-items: center;
|
|
1412
|
+
gap: 6px;
|
|
1413
|
+
padding: 6px 14px;
|
|
1414
|
+
font-size: 0.8125rem;
|
|
1415
|
+
font-weight: 500;
|
|
1416
|
+
font-family: inherit;
|
|
1417
|
+
border: none;
|
|
1418
|
+
border-radius: 8px;
|
|
1419
|
+
cursor: pointer;
|
|
1420
|
+
transition: background var(--transition-fast), color var(--transition-fast);
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
.dash-btn--ghost {
|
|
1424
|
+
color: var(--text-secondary);
|
|
1425
|
+
background: rgba(255, 255, 255, 0.06);
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
.dash-btn--ghost:hover {
|
|
1429
|
+
color: var(--text-primary);
|
|
1430
|
+
background: rgba(255, 255, 255, 0.10);
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.dash-header__actions {
|
|
1434
|
+
display: flex;
|
|
1435
|
+
align-items: center;
|
|
1436
|
+
gap: 8px;
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
/* ---------- Mobile Dashboard Responsive ---------- */
|
|
1440
|
+
@media (max-width: 480px) {
|
|
1441
|
+
.dash-header__inner {
|
|
1442
|
+
padding: 0 12px;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
.dash-main {
|
|
1446
|
+
padding: 12px;
|
|
1447
|
+
gap: 12px;
|
|
1448
|
+
}
|
|
1449
|
+
|
|
1450
|
+
.kpi-card {
|
|
1451
|
+
padding: 14px 16px;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
.chart-card__header {
|
|
1455
|
+
padding: 14px 16px;
|
|
1456
|
+
}
|
|
1457
|
+
|
|
1458
|
+
.chart-card__body {
|
|
1459
|
+
padding: 12px 16px 16px;
|
|
1460
|
+
}
|
|
1461
|
+
|
|
1462
|
+
.filter-bar {
|
|
1463
|
+
padding: 12px;
|
|
1464
|
+
gap: 8px;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
.filter-input,
|
|
1468
|
+
.filter-select {
|
|
1469
|
+
width: 100%;
|
|
1470
|
+
min-width: unset;
|
|
1471
|
+
}
|
|
1472
|
+
|
|
1473
|
+
.filter-group {
|
|
1474
|
+
flex: 1 1 calc(50% - 4px);
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
.filter-reset {
|
|
1478
|
+
width: 100%;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
.dash-header__title {
|
|
1482
|
+
font-size: 0.875rem;
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
.exec-step__meta {
|
|
1486
|
+
flex-direction: column;
|
|
1487
|
+
gap: 2px;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
.sessions-table th:nth-child(5),
|
|
1491
|
+
.sessions-table td:nth-child(5),
|
|
1492
|
+
.sessions-table th:nth-child(6),
|
|
1493
|
+
.sessions-table td:nth-child(6),
|
|
1494
|
+
.sessions-table th:nth-child(7),
|
|
1495
|
+
.sessions-table td:nth-child(7),
|
|
1496
|
+
.sessions-table th:nth-child(8),
|
|
1497
|
+
.sessions-table td:nth-child(8) {
|
|
1498
|
+
display: none;
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
@media (max-width: 768px) {
|
|
1503
|
+
.charts-row {
|
|
1504
|
+
grid-template-columns: 1fr;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
.pipeline {
|
|
1508
|
+
flex-wrap: wrap;
|
|
1509
|
+
gap: 8px;
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
.pipeline-arrow {
|
|
1513
|
+
display: none;
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
.pipeline-stage {
|
|
1517
|
+
flex: 1 1 calc(50% - 4px);
|
|
1518
|
+
min-width: 100px;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
.tier-chart .donut-container,
|
|
1522
|
+
.donut-container {
|
|
1523
|
+
flex-direction: column;
|
|
1524
|
+
align-items: center;
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
.sessions-table {
|
|
1528
|
+
font-size: 0.75rem;
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1531
|
+
.sessions-table th,
|
|
1532
|
+
.sessions-table td {
|
|
1533
|
+
padding: 8px 6px;
|
|
1534
|
+
}
|
|
1535
|
+
}
|
|
@@ -11,7 +11,7 @@ Phase 1: Triage & Reproduce (sub-agent, inline)
|
|
|
11
11
|
Phase 2: Root Cause Analysis (sub-agent, inline)
|
|
12
12
|
Phase 3: Fix Implementation (sub-agent or background)
|
|
13
13
|
Phase 4: Verification (sub-agent, inline)
|
|
14
|
-
Phase 5:
|
|
14
|
+
Phase 5: Delivery (direct, Team Lead)
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
---
|
|
@@ -123,7 +123,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
123
123
|
|
|
124
124
|
---
|
|
125
125
|
|
|
126
|
-
### Phase 5: Delivery
|
|
126
|
+
### Phase 5: Delivery
|
|
127
127
|
|
|
128
128
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
129
129
|
>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Workflow: Data Pipeline
|
|
4
4
|
|
|
5
|
-
Standard execution plan for
|
|
5
|
+
Standard execution plan for crawling, processing, and importing data.
|
|
6
6
|
|
|
7
7
|
> **Project config:** For project-specific paths, data schema, CLI commands, and processing rules, see `data-pipeline-config.md`. For data model docs, see `docs-structure.md`.
|
|
8
8
|
|
|
@@ -10,11 +10,11 @@ Standard execution plan for crowling, processing, and importing data.
|
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
Phase 1: Source Analysis (sub-agent, inline)
|
|
13
|
-
Phase 2:
|
|
13
|
+
Phase 2: Crawling (background agent)
|
|
14
14
|
Phase 3: Processing (sub-agent, sequential)
|
|
15
15
|
Phase 4: Validation (sub-agent, inline)
|
|
16
16
|
Phase 5: Import (sub-agent, inline)
|
|
17
|
-
Phase 6:
|
|
17
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -49,22 +49,22 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
-
## Phase 2:
|
|
52
|
+
## Phase 2: Crawling
|
|
53
53
|
|
|
54
54
|
**Agent:** Data Expert
|
|
55
55
|
**Type:** Background agent (may be long-running)
|
|
56
56
|
|
|
57
57
|
### Steps
|
|
58
58
|
|
|
59
|
-
1. Implement
|
|
59
|
+
1. Implement crawler following existing patterns (see `data-pipeline-config.md`)
|
|
60
60
|
2. Output raw data as NDJSON
|
|
61
61
|
3. Handle pagination, rate limiting, and error recovery
|
|
62
|
-
4. Log
|
|
62
|
+
4. Log crawling statistics (pages visited, records extracted, errors)
|
|
63
63
|
|
|
64
64
|
### Exit Criteria
|
|
65
65
|
|
|
66
66
|
- [ ] Raw NDJSON file produced
|
|
67
|
-
- [ ]
|
|
67
|
+
- [ ] Crawling statistics logged
|
|
68
68
|
- [ ] No duplicate records
|
|
69
69
|
- [ ] Output contract returned
|
|
70
70
|
|
|
@@ -141,7 +141,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
141
141
|
|
|
142
142
|
---
|
|
143
143
|
|
|
144
|
-
### Phase 6: Delivery
|
|
144
|
+
### Phase 6: Delivery
|
|
145
145
|
|
|
146
146
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
147
147
|
>
|
|
@@ -14,7 +14,7 @@ Phase 2: Migration Implementation (sub-agent or background)
|
|
|
14
14
|
Phase 3: Type Generation (sub-agent, sequential)
|
|
15
15
|
Phase 4: Code Integration (sub-agent, sequential)
|
|
16
16
|
Phase 5: Verification & Rollback Test (sub-agent, inline)
|
|
17
|
-
Phase 6:
|
|
17
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -154,7 +154,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
154
154
|
|
|
155
155
|
---
|
|
156
156
|
|
|
157
|
-
### Phase 6: Delivery
|
|
157
|
+
### Phase 6: Delivery
|
|
158
158
|
|
|
159
159
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
160
160
|
>
|
|
@@ -13,7 +13,7 @@ Phase 2: Foundation (background agents, parallel)
|
|
|
13
13
|
Phase 3: Integration (sub-agent, sequential)
|
|
14
14
|
Phase 4: Validation (background agents, parallel)
|
|
15
15
|
Phase 5: QA Gate (sub-agent, inline)
|
|
16
|
-
Phase 6:
|
|
16
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
---
|
|
@@ -204,21 +204,28 @@ If there are no open questions, explicitly state: "No open questions — plan is
|
|
|
204
204
|
3. Verify no files outside partitions were modified
|
|
205
205
|
4. Check all tracker issue acceptance criteria
|
|
206
206
|
5. Run panel review if high-stakes (security, DB, architecture)
|
|
207
|
-
6.
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
6. **Final Smoke Test (Gate 10)** — verify the complete feature end-to-end:
|
|
208
|
+
- Full clean build of all affected projects (not incremental)
|
|
209
|
+
- End-to-end browser walkthrough of the complete user flow
|
|
210
|
+
- Verify all states: loading, empty, populated, error, partial
|
|
211
|
+
- Cross-task integration check (e.g., migration + component + page compose correctly)
|
|
212
|
+
- Final responsive sweep at all breakpoints (if UI changes)
|
|
213
|
+
7. Move all issues to Done
|
|
214
|
+
8. Update session checkpoint → delete checkpoint
|
|
215
|
+
9. Update `.github/customizations/project/roadmap.md`
|
|
210
216
|
|
|
211
217
|
### Exit Criteria
|
|
212
218
|
|
|
213
219
|
- [ ] All phases verified
|
|
214
220
|
- [ ] All tracker issues Done
|
|
215
221
|
- [ ] Full build passes
|
|
222
|
+
- [ ] **Final smoke test passed** — complete user flow verified end-to-end
|
|
216
223
|
- [ ] Roadmap updated
|
|
217
224
|
- [ ] Delivery Outcome completed (see `general.instructions.md`) — branch pushed, PR opened (not merged), tracker linked
|
|
218
225
|
|
|
219
226
|
---
|
|
220
227
|
|
|
221
|
-
### Phase 6: Delivery
|
|
228
|
+
### Phase 6: Delivery
|
|
222
229
|
|
|
223
230
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
224
231
|
>
|
|
@@ -11,7 +11,7 @@ Phase 1: Baseline Measurement (sub-agent, inline)
|
|
|
11
11
|
Phase 2: Analysis (sub-agent, inline)
|
|
12
12
|
Phase 3: Optimization (background agents, parallel)
|
|
13
13
|
Phase 4: Verification (sub-agent, inline)
|
|
14
|
-
Phase 5:
|
|
14
|
+
Phase 5: Delivery (direct, Team Lead)
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
---
|
|
@@ -120,7 +120,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
120
120
|
|
|
121
121
|
---
|
|
122
122
|
|
|
123
|
-
### Phase 5: Delivery
|
|
123
|
+
### Phase 5: Delivery
|
|
124
124
|
|
|
125
125
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
126
126
|
>
|
|
@@ -12,7 +12,7 @@ Phase 2: Test Coverage Gap (sub-agent or background)
|
|
|
12
12
|
Phase 3: Refactor Implementation (sub-agent or background)
|
|
13
13
|
Phase 4: Verification (sub-agent, inline)
|
|
14
14
|
Phase 5: Panel Review (sub-agent, for large refactors)
|
|
15
|
-
Phase 6:
|
|
15
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
---
|
|
@@ -137,7 +137,7 @@ The refactoring agent owns only the scoped files. No changes outside the partiti
|
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
### Phase 6: Delivery
|
|
140
|
+
### Phase 6: Delivery
|
|
141
141
|
|
|
142
142
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
143
143
|
>
|
|
@@ -14,7 +14,7 @@ Phase 2: Schema Implementation (sub-agent or background)
|
|
|
14
14
|
Phase 3: Query Updates (sub-agent, sequential)
|
|
15
15
|
Phase 4: Page Integration (sub-agent, sequential)
|
|
16
16
|
Phase 5: Verification (sub-agent, inline)
|
|
17
|
-
Phase 6:
|
|
17
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
18
18
|
```
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -159,7 +159,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
162
|
-
### Phase 6: Delivery
|
|
162
|
+
### Phase 6: Delivery
|
|
163
163
|
|
|
164
164
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
165
165
|
>
|
|
@@ -12,7 +12,7 @@ Phase 2: Automated Checks (sub-agent, inline)
|
|
|
12
12
|
Phase 3: Manual Review (background agent)
|
|
13
13
|
Phase 4: Panel Review (sub-agent, inline)
|
|
14
14
|
Phase 5: Remediation (sub-agent or background)
|
|
15
|
-
Phase 6:
|
|
15
|
+
Phase 6: Delivery (direct, Team Lead)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
---
|
|
@@ -143,7 +143,7 @@ Follow the **Delivery Outcome** in `general.instructions.md` and the **Branch Ow
|
|
|
143
143
|
|
|
144
144
|
---
|
|
145
145
|
|
|
146
|
-
### Phase 6: Delivery
|
|
146
|
+
### Phase 6: Delivery
|
|
147
147
|
|
|
148
148
|
> **See [shared-delivery-phase.md](shared-delivery-phase.md) for the standard delivery steps.**
|
|
149
149
|
>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: 'Data engineering expert for ETL pipelines, web
|
|
2
|
+
description: 'Data engineering expert for ETL pipelines, web crawlers, data processors, CLI tools, and CMS data import.'
|
|
3
3
|
name: 'Data Expert'
|
|
4
4
|
model: GPT-5.3-Codex
|
|
5
5
|
tools: ['search/changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'read/problems', 'execute/getTerminalOutput', 'execute/runInTerminal', 'read/terminalLastCommand', 'read/terminalSelection', 'search', 'execute/testFailure', 'search/usages']
|
|
@@ -32,7 +32,7 @@ Resolve via [skill-matrix.md](.github/customizations/agents/skill-matrix.md).
|
|
|
32
32
|
- Idempotent imports with `createOrReplace` and deterministic `_id`
|
|
33
33
|
- Validate with Zod before importing — never import invalid data
|
|
34
34
|
- Respect `robots.txt` and rate limit all scraping requests
|
|
35
|
-
- Use the project's web crawling library for concurrent
|
|
35
|
+
- Use the project's web crawling library for concurrent crawling (see the **data-pipeline** skill)
|
|
36
36
|
- Handle errors gracefully — skip bad records, don't halt pipeline
|
|
37
37
|
- Preserve UTF-8 encoding for special characters and diacritics
|
|
38
38
|
- Backup before bulk operations
|
|
@@ -3,22 +3,6 @@ description: 'Codebase exploration specialist for deep research, pattern discove
|
|
|
3
3
|
name: 'Researcher'
|
|
4
4
|
model: GPT-5 mini
|
|
5
5
|
tools: ['search/codebase', 'search/textSearch', 'search/fileSearch', 'search/usages', 'read/readFile', 'search/listDirectory', 'web/fetch', 'execute/runInTerminal', 'read/terminalLastCommand']
|
|
6
|
-
handoffs:
|
|
7
|
-
- label: Implement Feature
|
|
8
|
-
agent: Team Lead
|
|
9
|
-
prompt: 'Use the implement-feature prompt to implement the following task with full orchestration, validation, and traceability:'
|
|
10
|
-
- label: Fix Bug
|
|
11
|
-
agent: Team Lead
|
|
12
|
-
prompt: 'Use the bug-fix prompt to investigate and fix the following bug with triage, root cause analysis, and verification:'
|
|
13
|
-
- label: Brainstorm
|
|
14
|
-
agent: Team Lead
|
|
15
|
-
prompt: 'Use the brainstorm prompt to explore requirements, approaches, and trade-offs before committing to a plan for:'
|
|
16
|
-
- label: Quick Refinement
|
|
17
|
-
agent: Team Lead
|
|
18
|
-
prompt: 'Use the quick-refinement prompt to handle these follow-up refinements (UI tweaks, polish, adjustments):'
|
|
19
|
-
- label: Generate Task Spec
|
|
20
|
-
agent: Team Lead
|
|
21
|
-
prompt: 'Use the generate-task-spec prompt to create an opencastle.tasks.yml spec for autonomous overnight runs based on:'
|
|
22
6
|
---
|
|
23
7
|
|
|
24
8
|
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
@@ -45,16 +45,27 @@ You are a **team lead and task orchestrator**. You do **not** implement code you
|
|
|
45
45
|
|
|
46
46
|
### Direct Skills
|
|
47
47
|
|
|
48
|
+
Skills are split into two loading tiers to reduce upfront token usage. **Load a skill only when its phase is reached** — do not pre-load on-demand skills at session start.
|
|
49
|
+
|
|
50
|
+
#### Always Load (session start)
|
|
51
|
+
|
|
52
|
+
These skills are needed in every session regardless of workflow:
|
|
53
|
+
|
|
48
54
|
- **team-lead-reference** — Model routing, agent registry, pre-delegation checks, cost tracking, DLQ format, deepen-plan protocol
|
|
49
55
|
- **session-checkpoints** — Save and restore session state for multi-session features; enables resume, replay, and fork
|
|
50
|
-
- **task-management** — Task tracker conventions, issue naming, labels, priorities, workflow states (resolved via skill-matrix to `linear-task-management` or `jira-management`)
|
|
51
|
-
- **validation-gates** — Shared validation gates for all workflows (deterministic checks, browser testing, cache management, regression checks)
|
|
52
|
-
- **fast-review** — Mandatory single-reviewer gate after every delegation, with automatic retry and escalation to panel
|
|
53
|
-
- **panel-majority-vote** — 3-reviewer quality gate for high-stakes changes
|
|
54
|
-
- **context-map** — Generate structured file impact maps before complex changes (5+ files)
|
|
55
|
-
- **memory-merger** — Graduate mature lessons from LESSONS-LEARNED.md into permanent skills/instructions
|
|
56
56
|
- **agent-hooks** — Lifecycle hooks (session-start, session-end, pre-delegate, post-delegate) for consistent agent behavior
|
|
57
57
|
|
|
58
|
+
#### On-Demand (load when needed)
|
|
59
|
+
|
|
60
|
+
Load these skills only at the workflow phase that requires them:
|
|
61
|
+
|
|
62
|
+
- **task-management** — Task tracker conventions, issue naming, labels, priorities, workflow states (resolved via skill-matrix). **Load at:** Decompose & Partition phase (Step 2)
|
|
63
|
+
- **context-map** — Generate structured file impact maps before complex changes (5+ files). **Load at:** Decompose & Partition phase, for tasks touching 5+ files
|
|
64
|
+
- **validation-gates** — Shared validation gates for all workflows (deterministic checks, browser testing, cache management, regression checks). **Load at:** Verification phase (Step 4 review loop)
|
|
65
|
+
- **fast-review** — Mandatory single-reviewer gate after every delegation, with automatic retry and escalation to panel. **Load at:** Post-delegation verification
|
|
66
|
+
- **panel-majority-vote** — 3-reviewer quality gate for high-stakes changes. **Load at:** High-stakes verification, or when fast-review fails 3 times
|
|
67
|
+
- **memory-merger** — Graduate mature lessons from LESSONS-LEARNED.md into permanent skills/instructions. **Load at:** Session end, when lessons are ready to merge
|
|
68
|
+
|
|
58
69
|
## Specialist Agents
|
|
59
70
|
|
|
60
71
|
Delegate to these agents via `runSubagent` (inline) or background sessions. `agents: ['*']` gives access to all.
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
````markdown
|
|
2
2
|
# Agent Performance Tracking
|
|
3
3
|
|
|
4
|
-
> **Last Updated:** _(auto-updated by metrics-report prompt)_
|
|
5
|
-
|
|
6
4
|
Tracks agent success rates across panel reviews and delegated tasks to inform model routing and panel reviewer selection.
|
|
7
5
|
|
|
8
6
|
## Data Sources
|
|
@@ -10,7 +8,7 @@ Tracks agent success rates across panel reviews and delegated tasks to inform mo
|
|
|
10
8
|
Performance data is collected automatically via NDJSON session logs:
|
|
11
9
|
- **Session data:** `.github/customizations/logs/sessions.ndjson` — appended by every agent after each session
|
|
12
10
|
- **Delegation data:** `.github/customizations/logs/delegations.ndjson` — appended by the Team Lead after each delegation
|
|
13
|
-
- **
|
|
11
|
+
- **Dashboard:** Run `npx opencastle dashboard` to visualize agent performance
|
|
14
12
|
|
|
15
13
|
## Quick Queries
|
|
16
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 'Bootstrap the .github/customizations/ directory for a new project. Discovers project structure, tech stack, and configuration, then generates all customization files so skills have project-specific context to operate on.'
|
|
3
|
-
agent:
|
|
3
|
+
agent: Team Lead
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .github/customizations/ directory instead. -->
|
|
@@ -107,12 +107,17 @@ Delegate to the appropriate specialist agent via **sub-agent** (inline). For bug
|
|
|
107
107
|
|
|
108
108
|
> Load the **validation-gates** skill for detailed steps on each gate.
|
|
109
109
|
|
|
110
|
-
Every bug fix must pass ALL
|
|
111
|
-
|
|
112
|
-
1. **
|
|
113
|
-
2. **
|
|
114
|
-
3. **
|
|
115
|
-
4. **
|
|
110
|
+
Every bug fix must pass ALL applicable gates:
|
|
111
|
+
|
|
112
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
113
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
114
|
+
3. **Gate 3: Blast Radius Check** — verify the fix is minimal and scoped (bug fixes should be ≤100 lines, ≤3 files; escalate if larger)
|
|
115
|
+
4. **Gate 4: Dependency Audit** (when `package.json` or lockfiles change) — vulnerability scan, license check, bundle size, duplicates
|
|
116
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates the fix. No auto-PASS for sensitive files
|
|
117
|
+
6. **Gate 6: Bug-Specific Verification** (MANDATORY) — start dev server, reproduce original bug (should be gone), verify correct behavior, test edge cases, screenshot before/after, check both apps if shared code
|
|
118
|
+
7. **Gate 7: Browser Testing** (for UI-related bugs) — clear cache, start server, verify fix + responsive + screenshots
|
|
119
|
+
8. **Gate 8: Regression Testing** — run tests for all projects consuming modified files, browser-test adjacent functionality
|
|
120
|
+
9. **Gate 9: Panel Review** (only if needed) — use **panel-majority-vote** skill if fix touches auth/authorization, RLS, security headers/CSP, or sensitive data
|
|
116
121
|
|
|
117
122
|
### 6. Delivery
|
|
118
123
|
|
|
@@ -79,10 +79,15 @@ Include the self-improvement reminder in every delegation prompt (see `general.i
|
|
|
79
79
|
|
|
80
80
|
Every subtask must pass ALL gates before being marked Done:
|
|
81
81
|
|
|
82
|
-
1. **Gate 1:
|
|
83
|
-
2. **Gate 2:
|
|
84
|
-
3. **Gate 3:
|
|
85
|
-
4. **Gate 4:
|
|
82
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
83
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
84
|
+
3. **Gate 3: Blast Radius Check** — verify scope is expected (≤200 lines, ≤5 files normal; escalate if >500 lines or >10 files)
|
|
85
|
+
4. **Gate 4: Dependency Audit** (when `package.json` changes) — vulnerability scan, license check, bundle size, duplicates
|
|
86
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates every delegation output. No auto-PASS for sensitive files
|
|
87
|
+
6. **Gate 6: Browser Testing** (MANDATORY for UI changes) — clear cache, start server, verify features + responsive + screenshots
|
|
88
|
+
7. **Gate 7: Regression Testing** — full test suite for affected projects, browser-test adjacent pages if shared components changed
|
|
89
|
+
8. **Gate 8: Panel Review** (for high-stakes changes) — use **panel-majority-vote** skill for security, DB migrations, architecture
|
|
90
|
+
9. **Gate 9: Final Smoke Test** — after all tasks Done, verify the complete feature end-to-end as a cohesive unit
|
|
86
91
|
|
|
87
92
|
### 5. Delivery
|
|
88
93
|
|
|
@@ -98,11 +98,15 @@ Delegate to the appropriate specialist agent(s). Since follow-ups are scoped and
|
|
|
98
98
|
|
|
99
99
|
> Load the **validation-gates** skill for detailed steps on each gate.
|
|
100
100
|
|
|
101
|
-
Every follow-up, no matter how small, must pass these
|
|
102
|
-
|
|
103
|
-
1. **
|
|
104
|
-
2. **
|
|
105
|
-
3. **
|
|
101
|
+
Every follow-up, no matter how small, must pass these gates:
|
|
102
|
+
|
|
103
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
104
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
105
|
+
3. **Gate 3: Blast Radius Check** — verify scope matches the "small follow-up" expectation (≤100 lines, ≤3 files normal; if larger, escalate to `implement-feature` workflow)
|
|
106
|
+
4. **Gate 4: Dependency Audit** (when `package.json` or lockfiles change) — vulnerability scan, license check, bundle size, duplicates
|
|
107
|
+
5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates the change. No auto-PASS for sensitive files
|
|
108
|
+
6. **Gate 6: Browser Testing** (MANDATORY for any visual change) — clear cache, start server, verify scenario + responsive + screenshot evidence
|
|
109
|
+
7. **Gate 7: Regression Testing** — if shared component/library modified, run tests for all consuming projects and browser-test at least one page per affected app
|
|
106
110
|
|
|
107
111
|
### 6. Delivery
|
|
108
112
|
|
|
@@ -57,10 +57,21 @@ Acceptance criteria:
|
|
|
57
57
|
|
|
58
58
|
### Phase 4: Verify & Report
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
> Load the **validation-gates** skill for detailed steps on each gate.
|
|
61
|
+
|
|
62
|
+
All fixes must pass applicable gates before pushing:
|
|
63
|
+
|
|
64
|
+
1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings — block immediately if found
|
|
65
|
+
2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
|
|
66
|
+
3. **Gate 3: Blast Radius Check** — verify changes are scoped to commented files only; flag any files modified outside the comment scope
|
|
67
|
+
4. **Gate 4: Fast Review** (MANDATORY) — single reviewer sub-agent validates the combined PR comment fixes
|
|
68
|
+
5. **Gate 5: Regression Testing** — run tests for all projects consuming modified files
|
|
69
|
+
|
|
70
|
+
After all gates pass:
|
|
71
|
+
|
|
72
|
+
6. **Commit fixes** — Use descriptive commit messages referencing the PR: `TAS-XX: Address PR review — [summary]`
|
|
73
|
+
7. **Push to the same branch** — The PR updates automatically
|
|
74
|
+
8. **Report back** — Provide a structured summary of what was resolved
|
|
64
75
|
|
|
65
76
|
## Output Format
|
|
66
77
|
|
|
@@ -85,9 +96,12 @@ After resolving comments, report:
|
|
|
85
96
|
| path/to/file.ts | [question/debate] | [your take + options] |
|
|
86
97
|
|
|
87
98
|
### Verification
|
|
99
|
+
- Secret Scanning: PASS/FAIL
|
|
88
100
|
- Lint: PASS/FAIL
|
|
89
101
|
- Tests: PASS/FAIL
|
|
90
102
|
- Build: PASS/FAIL
|
|
103
|
+
- Blast Radius: PASS/ESCALATED
|
|
104
|
+
- Fast Review: PASS/FAIL
|
|
91
105
|
|
|
92
106
|
### Commits
|
|
93
107
|
- `abc1234` TAS-XX: Address PR review — [summary]
|
|
@@ -32,7 +32,8 @@ Session Lifecycle:
|
|
|
32
32
|
2. **Check for checkpoint** — If `.github/customizations/SESSION-CHECKPOINT.md` exists, read it. Resume from last known state instead of re-analyzing.
|
|
33
33
|
3. **Check pending approvals** — If the checkpoint has a `## Pending Approvals` section, check for replies using the configured messaging provider's MCP tools (e.g., `conversations_replies` for Slack). Read `.opencastle.json` → `stack.teamTools` to determine the provider. If no messaging is configured, skip this step.
|
|
34
34
|
4. **Check dead letter queue** — Scan `.github/customizations/AGENT-FAILURES.md` for pending failures related to the current scope.
|
|
35
|
-
5. **
|
|
35
|
+
5. **Validate skill-matrix bindings** — Open `.github/customizations/agents/skill-matrix.md` and check whether the **Primary Stack** and **Tooling** tables have any filled-in rows (non-empty Technology/Skill columns). If all bindings are empty, **warn the user** that the bootstrap hasn't been run and capability slots will not resolve. Suggest running the *"Bootstrap Customizations"* prompt first. Do NOT silently continue with empty bindings.
|
|
36
|
+
6. **Load domain skills** — Based on the task description, load the appropriate skills before writing code. Don't start coding without the relevant skill loaded.
|
|
36
37
|
|
|
37
38
|
### Template for Delegation Prompts
|
|
38
39
|
|
|
@@ -42,6 +43,7 @@ Include this reminder in every delegation:
|
|
|
42
43
|
**Session Start:** Read `.github/customizations/LESSONS-LEARNED.md` before starting.
|
|
43
44
|
Check `.github/customizations/SESSION-CHECKPOINT.md` for prior state and pending approvals.
|
|
44
45
|
If pending approvals exist, check for replies via the messaging provider.
|
|
46
|
+
Validate `.github/customizations/agents/skill-matrix.md` — warn if skill bindings are empty (bootstrap not run).
|
|
45
47
|
Load relevant skills before writing code.
|
|
46
48
|
```
|
|
47
49
|
|
|
@@ -149,7 +151,7 @@ Include on-session-start and on-session-end actions in every delegation prompt.
|
|
|
149
151
|
|
|
150
152
|
### For Workflow Templates
|
|
151
153
|
|
|
152
|
-
Each workflow's **
|
|
154
|
+
Each workflow's **Delivery phase** naturally serves as the on-session-end hook for that workflow type. The Delivery phase steps should include session logging, lesson verification, and memory merge checks.
|
|
153
155
|
|
|
154
156
|
---
|
|
155
157
|
|