@lifeaitools/rdc-skills 0.24.38 → 0.24.41
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/.claude/settings.json +15 -15
- package/.claude-plugin/marketplace.json +21 -21
- package/.claude-plugin/plugin.json +1371 -1371
- package/.github/workflows/publish.yml +34 -34
- package/.github/workflows/self-test.yml +58 -58
- package/CHANGELOG.md +310 -310
- package/LICENSE +21 -21
- package/MANIFEST.md +221 -221
- package/README.md +376 -375
- package/README.sandbox.md +3 -3
- package/RELEASE.md +42 -0
- package/assets/watcher/viewer.html +164 -164
- package/bin/rdc-skills-mcp.mjs +316 -316
- package/commands/build.md +183 -183
- package/commands/collab.md +180 -180
- package/commands/deploy.md +152 -152
- package/commands/design.md +31 -31
- package/commands/edit.md +28 -28
- package/commands/fixit.md +124 -124
- package/commands/handoff.md +173 -173
- package/commands/help.md +95 -95
- package/commands/overnight.md +220 -220
- package/commands/plan.md +158 -158
- package/commands/preplan.md +131 -131
- package/commands/prototype.md +145 -145
- package/commands/release.md +49 -49
- package/commands/report.md +99 -99
- package/commands/review.md +120 -120
- package/commands/self-test.md +113 -113
- package/commands/status.md +86 -86
- package/commands/watch.md +98 -98
- package/commands/workitems.md +137 -137
- package/git-sha.json +1 -1
- package/guides/agent-bootstrap.md +295 -295
- package/guides/agents/backend.md +104 -104
- package/guides/agents/content.md +94 -94
- package/guides/agents/cs2.md +56 -56
- package/guides/agents/data.md +87 -87
- package/guides/agents/design.md +77 -77
- package/guides/agents/frontend.md +92 -92
- package/guides/agents/infrastructure.md +81 -81
- package/guides/agents/setup.md +281 -281
- package/guides/agents/verify.md +151 -151
- package/guides/agents/viz.md +106 -106
- package/guides/backend.md +146 -146
- package/guides/content.md +147 -147
- package/guides/cs2.md +190 -190
- package/guides/data.md +123 -123
- package/guides/design.md +116 -116
- package/guides/engineering-behavior.md +43 -43
- package/guides/escalation-protocol.md +125 -125
- package/guides/frontend.md +151 -151
- package/guides/history-md-spec.md +297 -297
- package/guides/infrastructure.md +179 -179
- package/guides/lessons-learned-spec.md +151 -145
- package/guides/output-contract.md +108 -108
- package/guides/publish-md-spec.md +289 -289
- package/guides/rdc-skills-startup.md +30 -30
- package/guides/verify.md +11 -11
- package/hooks/check-cwd.js +31 -31
- package/hooks/check-rdc-environment.js +164 -164
- package/hooks/check-services.js +6 -6
- package/hooks/check-stale-work-items.js +19 -19
- package/hooks/foreground-process-gate.js +128 -128
- package/hooks/gate-watchdog-selfcheck.js +257 -257
- package/hooks/hook-logger.js +25 -25
- package/hooks/lib/run-evidence-gate.mjs +241 -241
- package/hooks/no-stop-open-epics.js +127 -127
- package/hooks/post-tool-batch-gate.js +203 -203
- package/hooks/post-work-check.js +21 -21
- package/hooks/postcompact-log.js +13 -13
- package/hooks/precompact-log.js +13 -13
- package/hooks/rate-limit-retry.js +46 -46
- package/hooks/rdc-invocation-marker.js +157 -157
- package/hooks/rdc-output-contract-gate.js +94 -94
- package/hooks/require-work-item-on-commit.js +294 -294
- package/hooks/restart-brief.js +19 -19
- package/hooks/run-hidden-hook.ps1 +47 -47
- package/hooks/task-completed-gate.js +274 -274
- package/hooks/work-item-exit-gate.js +944 -944
- package/lib/catalog.mjs +236 -236
- package/lib/cloud-rewrite.mjs +155 -155
- package/package.json +57 -56
- package/rules/work-items-rpc.md +520 -520
- package/scaffold/templates/HISTORY.md.template +39 -39
- package/scaffold/templates/PUBLISH.md.template +21 -21
- package/scaffold/templates/brochure-studio-default.html +70 -70
- package/scripts/acceptance.mjs +502 -502
- package/scripts/fixtures/guides/bad-guide.md +15 -15
- package/scripts/fixtures/guides-clean/good-guide.md +16 -16
- package/scripts/install-rdc-skills.js +1289 -1289
- package/scripts/install.ps1 +202 -202
- package/scripts/install.sh +132 -132
- package/scripts/lib/assertions.mjs +287 -287
- package/scripts/lib/manifest-schema.mjs +754 -754
- package/scripts/lib/runner.mjs +465 -465
- package/scripts/lib/sandbox.mjs +435 -435
- package/scripts/prepack.mjs +32 -32
- package/scripts/rdc-brochure.mjs +482 -464
- package/scripts/rdc-design-cli.mjs +134 -134
- package/scripts/rebuild-mcp.mjs +107 -107
- package/scripts/self-test.mjs +1460 -1460
- package/scripts/stamp-git-sha.mjs +29 -29
- package/scripts/test-guide-validator.mjs +196 -196
- package/scripts/test-rdc-hooks.mjs +145 -145
- package/scripts/uninstall.ps1 +77 -77
- package/scripts/uninstall.sh +69 -69
- package/scripts/update.ps1 +43 -43
- package/scripts/update.sh +43 -43
- package/scripts/validate-place-histories.js +461 -461
- package/scripts/validate-publish-manifests.js +424 -424
- package/scripts/watch-init.mjs +100 -100
- package/skills/brochure/SKILL.md +107 -107
- package/skills/build/SKILL.md +563 -563
- package/skills/channel-formatter/SKILL.md +533 -533
- package/skills/co-develop/SKILL.md +196 -196
- package/skills/collab/SKILL.md +239 -239
- package/skills/convert/SKILL.md +140 -140
- package/skills/deploy/SKILL.md +541 -541
- package/skills/design/SKILL.md +211 -211
- package/skills/design/reference/ownership.md +16 -16
- package/skills/design/reference/rampa.md +92 -92
- package/skills/design/reference/studio-model.md +153 -153
- package/skills/edit/SKILL.md +98 -98
- package/skills/fixit/SKILL.md +165 -165
- package/skills/fs-mcp/SKILL.md +148 -148
- package/skills/handoff/SKILL.md +236 -200
- package/skills/help/SKILL.md +143 -143
- package/skills/housekeeping/SKILL.md +219 -160
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -345
- package/skills/preplan/SKILL.md +90 -90
- package/skills/prototype/SKILL.md +150 -150
- package/skills/rdc-brochurify/SKILL.md +245 -245
- package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
- package/skills/release/SKILL.md +140 -140
- package/skills/report/SKILL.md +100 -100
- package/skills/review/SKILL.md +152 -152
- package/skills/rpms-filemap/SKILL.cloud.md +111 -111
- package/skills/rpms-filemap/SKILL.md +111 -111
- package/skills/self-test/SKILL.md +132 -132
- package/skills/status/SKILL.md +99 -99
- package/skills/terminal-config/SKILL.md +62 -62
- package/skills/tests/MATRIX.md +54 -54
- package/skills/tests/README.md +47 -47
- package/skills/tests/rdc-brochure.test.json +34 -34
- package/skills/tests/rdc-build.test.json +36 -36
- package/skills/tests/rdc-channel-formatter.test.json +45 -45
- package/skills/tests/rdc-co-develop.test.json +29 -29
- package/skills/tests/rdc-collab.test.json +29 -29
- package/skills/tests/rdc-convert.test.json +35 -35
- package/skills/tests/rdc-deploy.test.json +30 -30
- package/skills/tests/rdc-design.test.json +27 -27
- package/skills/tests/rdc-edit.test.json +29 -29
- package/skills/tests/rdc-fixit.test.json +36 -36
- package/skills/tests/rdc-fs-mcp.test.json +36 -36
- package/skills/tests/rdc-handoff.test.json +28 -28
- package/skills/tests/rdc-help.test.json +29 -29
- package/skills/tests/rdc-housekeeping.test.json +32 -28
- package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
- package/skills/tests/rdc-overnight.test.json +37 -37
- package/skills/tests/rdc-plan.test.json +27 -27
- package/skills/tests/rdc-preplan.test.json +31 -31
- package/skills/tests/rdc-prototype.test.json +28 -28
- package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
- package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
- package/skills/tests/rdc-release.test.json +29 -29
- package/skills/tests/rdc-report.test.json +28 -28
- package/skills/tests/rdc-review.test.json +29 -29
- package/skills/tests/rdc-rpms-filemap.test.json +28 -28
- package/skills/tests/rdc-self-test.test.json +24 -24
- package/skills/tests/rdc-status.test.json +29 -29
- package/skills/tests/rdc-terminal-config.test.json +29 -29
- package/skills/tests/rdc-watch.test.json +24 -24
- package/skills/tests/rdc-workitems.test.json +27 -27
- package/skills/watch/SKILL.md +97 -97
- package/skills/workitems/SKILL.md +151 -151
- package/tests/acceptance.test.mjs +59 -59
- package/tests/channel-formatter.contract.test.mjs +251 -251
- package/tests/curl-surface.test.mjs +289 -289
- package/tests/harness-gates.test.mjs +325 -325
- package/tests/help-surface.test.mjs +61 -61
- package/tests/housekeeping-lessons-triage.test.mjs +49 -0
- package/tests/install-rdc-skills.test.mjs +49 -49
- package/tests/lessons-pipeline-contract.test.mjs +26 -0
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- package/tests/rdc-brochure.test.mjs +125 -0
- package/tests/release-contract.test.mjs +16 -0
- package/tests/require-work-item-on-commit.test.mjs +162 -162
- package/tests/run-evidence-gate.test.mjs +82 -82
- package/tests/skill-test-matrix.test.mjs +66 -66
- package/tests/validate-skills.js +27 -27
- package/tests/work-item-exit-gate-l2.test.mjs +368 -368
- package/tests/work-item-exit-gate-l3.test.mjs +197 -197
|
@@ -1,189 +1,248 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: rdc:housekeeping
|
|
3
|
-
description: "Usage `rdc:housekeeping [--fix]` — Weekly maintenance audit
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
7
|
-
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
|
-
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
9
|
-
|
|
10
|
-
> If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`), then `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md` (fallback: `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md`).
|
|
11
|
-
|
|
12
|
-
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# rdc:housekeeping — Weekly Maintenance Audit
|
|
16
|
-
|
|
17
|
-
## When to Use
|
|
18
|
-
- Weekly maintenance (Sunday or session start)
|
|
19
|
-
- After large batch of new apps/packages/sites added
|
|
20
|
-
- Before monthly `workspace-intelligence-audit`
|
|
21
|
-
- When disoriented about repo health
|
|
22
|
-
- Called by `rdc:overnight` as a pre-flight if `--housekeeping` flag set
|
|
23
|
-
|
|
1
|
+
---
|
|
2
|
+
name: rdc:housekeeping
|
|
3
|
+
description: "Usage `rdc:housekeeping [--fix|--lessons]` — Weekly maintenance audit and lessons-only triage with a prior-fix audit, architectural interview gate, RDC work routing, and a complete report. Produces `.rdc/reports/YYYY-MM-DD-housekeeping.md`."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **⚠️ OUTPUT CONTRACT (READ FIRST):** `guides/output-contract.md`
|
|
7
|
+
> Checklist-only output. No tool-call narration. No raw MCP/JSON/log dumps.
|
|
8
|
+
> One checklist upfront, updated in place, shown again at end with a 1-line verdict.
|
|
9
|
+
|
|
10
|
+
> If dispatching subagents or running as a subagent: read `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md` first (fallback: `{PROJECT_ROOT}/.rdc/guides/agent-bootstrap.md`), then `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md` (fallback: `{PROJECT_ROOT}/.rdc/guides/engineering-behavior.md`).
|
|
11
|
+
|
|
12
|
+
> **Sandbox contract:** This skill honors `RDC_TEST=1` per `guides/agent-bootstrap.md` § RDC_TEST Sandbox Contract. Destructive external calls short-circuit under the flag.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# rdc:housekeeping — Weekly Maintenance Audit
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
- Weekly maintenance (Sunday or session start)
|
|
19
|
+
- After large batch of new apps/packages/sites added
|
|
20
|
+
- Before monthly `workspace-intelligence-audit`
|
|
21
|
+
- When disoriented about repo health
|
|
22
|
+
- Called by `rdc:overnight` as a pre-flight if `--housekeeping` flag set
|
|
23
|
+
|
|
24
24
|
## Arguments
|
|
25
25
|
- `rdc:housekeeping` — audit only, report issues
|
|
26
26
|
- `rdc:housekeeping --fix` — auto-remediate safe issues (scaffold missing CLAUDE.md, fix PUBLISH.md URLs, create missing tracker dirs)
|
|
27
|
-
|
|
27
|
+
- `rdc:housekeeping --lessons` — process only the weekly lessons triage workflow, including its audit, decision interview, routed work, and report
|
|
28
|
+
|
|
28
29
|
## Procedure
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
Scan every deployable target for required files:
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
For each dir in apps/*, sites/*, models/*, workers/*, mcp-servers/*, packages/*:
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
| Target Type | Required Files |
|
|
39
|
-
|-------------|---------------|
|
|
40
|
-
| Next.js app (`apps/*` with next.config) | `package.json`, `CLAUDE.md`, `PUBLISH.md`, `tsconfig.json` |
|
|
41
|
-
| Vite SPA (`models/*`, `sites/*` with vite.config) | `package.json`, `CLAUDE.md`, `PUBLISH.md`, `vite.config.js` or `.ts`, `dist/` |
|
|
42
|
-
| Static site (`sites/*` no vite/next) | `index.html`, `CLAUDE.md`, `PUBLISH.md` |
|
|
43
|
-
| Worker (`workers/*`) | `package.json`, `CLAUDE.md`, `wrangler.toml`, `src/index.ts` |
|
|
44
|
-
| MCP server (`mcp-servers/*`) | `package.json`, `CLAUDE.md`, `ARCHITECTURE.md`, `PUBLISH.md` |
|
|
45
|
-
| Package (`packages/*`) | `package.json`, `CLAUDE.md`, `tsconfig.json`, `src/` |
|
|
46
|
-
|
|
47
|
-
Report: `PASS` / `MISSING: <file list>` per target.
|
|
48
|
-
|
|
49
|
-
**With `--fix`:** Scaffold missing CLAUDE.md files using package.json description + src/ inspection (same pattern as the 2026-06-08 audit). Do NOT auto-create PUBLISH.md (requires domain knowledge).
|
|
50
|
-
|
|
51
|
-
### 2. PUBLISH.md URL Validation
|
|
52
|
-
|
|
53
|
-
For every PUBLISH.md that exists:
|
|
54
|
-
|
|
55
|
-
1. Parse frontmatter: extract `entity_slug`, `environments`, `status`
|
|
56
|
-
2. Query `app_deployments` for the slug:
|
|
57
|
-
```sql
|
|
58
|
-
SELECT app_slug, environment, url, host_type FROM app_deployments WHERE app_slug = '<slug>';
|
|
59
|
-
```
|
|
60
|
-
3. Cross-reference: any URL mentioned in the PUBLISH.md body/notes/SURFACE blocks must match the `app_deployments.url` for that environment
|
|
61
|
-
4. Check domain convention compliance (per `.claude/rules/domain-conventions.md`):
|
|
62
|
-
- Real estate projects → `*.dev.place.fund` (dev) / `*.place.fund` (prod)
|
|
63
|
-
- Class-A brands → `dev.<brand>` (dev) / `<brand>` (prod)
|
|
64
|
-
- Internal tools → `*.dev.regendevcorp.com` (dev) / `*.regendevcorp.com` (prod)
|
|
65
|
-
5. Flag mismatches: `MISMATCH: PUBLISH.md says <X>, app_deployments says <Y>`
|
|
66
|
-
|
|
67
|
-
**With `--fix`:** Update PUBLISH.md URLs to match app_deployments (the DB is the source of truth).
|
|
68
|
-
|
|
69
|
-
### 3. CLAUDE.md Freshness Check
|
|
31
|
+
When invoked with `--lessons`, skip every non-lessons maintenance section below (including Directory Structure Verification) and begin directly at **Lessons triage (weekly)**. Produce the lessons report only.
|
|
70
32
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
33
|
+
### 1. Directory Structure Verification
|
|
34
|
+
|
|
35
|
+
Scan every deployable target for required files:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
For each dir in apps/*, sites/*, models/*, workers/*, mcp-servers/*, packages/*:
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
| Target Type | Required Files |
|
|
42
|
+
|-------------|---------------|
|
|
43
|
+
| Next.js app (`apps/*` with next.config) | `package.json`, `CLAUDE.md`, `PUBLISH.md`, `tsconfig.json` |
|
|
44
|
+
| Vite SPA (`models/*`, `sites/*` with vite.config) | `package.json`, `CLAUDE.md`, `PUBLISH.md`, `vite.config.js` or `.ts`, `dist/` |
|
|
45
|
+
| Static site (`sites/*` no vite/next) | `index.html`, `CLAUDE.md`, `PUBLISH.md` |
|
|
46
|
+
| Worker (`workers/*`) | `package.json`, `CLAUDE.md`, `wrangler.toml`, `src/index.ts` |
|
|
47
|
+
| MCP server (`mcp-servers/*`) | `package.json`, `CLAUDE.md`, `ARCHITECTURE.md`, `PUBLISH.md` |
|
|
48
|
+
| Package (`packages/*`) | `package.json`, `CLAUDE.md`, `tsconfig.json`, `src/` |
|
|
49
|
+
|
|
50
|
+
Report: `PASS` / `MISSING: <file list>` per target.
|
|
51
|
+
|
|
52
|
+
**With `--fix`:** Scaffold missing CLAUDE.md files using package.json description + src/ inspection (same pattern as the 2026-06-08 audit). Do NOT auto-create PUBLISH.md (requires domain knowledge).
|
|
53
|
+
|
|
54
|
+
### 2. PUBLISH.md URL Validation
|
|
55
|
+
|
|
56
|
+
For every PUBLISH.md that exists:
|
|
57
|
+
|
|
58
|
+
1. Parse frontmatter: extract `entity_slug`, `environments`, `status`
|
|
59
|
+
2. Query `app_deployments` for the slug:
|
|
60
|
+
```sql
|
|
61
|
+
SELECT app_slug, environment, url, host_type FROM app_deployments WHERE app_slug = '<slug>';
|
|
62
|
+
```
|
|
63
|
+
3. Cross-reference: any URL mentioned in the PUBLISH.md body/notes/SURFACE blocks must match the `app_deployments.url` for that environment
|
|
64
|
+
4. Check domain convention compliance (per `.claude/rules/domain-conventions.md`):
|
|
65
|
+
- Real estate projects → `*.dev.place.fund` (dev) / `*.place.fund` (prod)
|
|
66
|
+
- Class-A brands → `dev.<brand>` (dev) / `<brand>` (prod)
|
|
67
|
+
- Internal tools → `*.dev.regendevcorp.com` (dev) / `*.regendevcorp.com` (prod)
|
|
68
|
+
5. Flag mismatches: `MISMATCH: PUBLISH.md says <X>, app_deployments says <Y>`
|
|
69
|
+
|
|
70
|
+
**With `--fix`:** Update PUBLISH.md URLs to match app_deployments (the DB is the source of truth).
|
|
71
|
+
|
|
72
|
+
### 3. CLAUDE.md Freshness Check
|
|
73
|
+
|
|
74
|
+
For each package with a CLAUDE.md:
|
|
75
|
+
1. Get CLAUDE.md last modified date
|
|
76
|
+
2. Get latest src/ modification date
|
|
77
|
+
3. If src/ changed after CLAUDE.md by >30 days, flag: `STALE: CLAUDE.md older than src/ by <N> days`
|
|
78
|
+
4. Check if new exports were added to `src/index.ts` that aren't mentioned in CLAUDE.md
|
|
79
|
+
|
|
80
|
+
**With `--fix`:** Re-scaffold CLAUDE.md from current src/ state.
|
|
81
|
+
|
|
82
|
+
### 4. Package.json Health
|
|
83
|
+
|
|
84
|
+
For each package:
|
|
85
|
+
1. Check `version` — flag `0.0.0` or `0.1.0` on packages with >5 src files as potentially stale
|
|
86
|
+
2. Check `exports` field exists (required for monorepo packages)
|
|
87
|
+
3. Check `name` matches `@regen/<dir-name>` or `@lifeai/<dir-name>` convention
|
|
88
|
+
4. Flag name mismatches between directory and package.json
|
|
89
|
+
|
|
90
|
+
### 5. Places Compliance
|
|
91
|
+
|
|
92
|
+
For each directory under `places/`:
|
|
93
|
+
1. Check PLACE.md exists with valid frontmatter (`schema_version`, `prt_slug`, `project_type`, `research_status`)
|
|
94
|
+
2. Check HISTORY.md exists (required for real-estate project types per `.claude/rules/history-md-convention.md`)
|
|
95
|
+
3. Check `corpus/INDEX.md` exists
|
|
96
|
+
4. Check `tracker/` directory exists with DECISIONS.md + MILESTONES.md
|
|
97
|
+
5. Check `artifacts/` directory exists
|
|
98
|
+
|
|
99
|
+
**With `--fix`:** Scaffold missing PLACE.md from HISTORY.md frontmatter, create missing tracker/corpus dirs.
|
|
100
|
+
|
|
101
|
+
### 6. Orphan Detection
|
|
102
|
+
|
|
103
|
+
1. **Empty/stub directories:** Any target dir with <3 files and no package.json → flag for removal
|
|
104
|
+
2. **Standalone repo drift:** Check `C:/Dev/` for repos that have monorepo copies and compare versions
|
|
105
|
+
3. **Dead app_deployments rows:** Query for slugs with `status='down'` or `status='broken'`
|
|
106
|
+
|
|
107
|
+
### 7. Stale Coolify Apps on .dev URLs
|
|
108
|
+
|
|
109
|
+
Query Coolify API for apps serving `.dev.*` URLs — these should be on PM2 per domain conventions:
|
|
110
|
+
```bash
|
|
111
|
+
TOKEN=$(curl -s http://127.0.0.1:52437/v/coolify-api)
|
|
112
|
+
curl -s -H "Authorization: Bearer $TOKEN" "https://deploy.regendevcorp.com/api/v1/applications" | \
|
|
113
|
+
python3 -c "import sys,json; [print(a['name'], a.get('fqdn','')) for a in json.load(sys.stdin) if '.dev.' in (a.get('fqdn',''))]"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Flag any .dev apps still on Coolify.
|
|
117
|
+
|
|
118
|
+
### 8. Media CDN Hotlink Allowlist
|
|
119
|
+
|
|
120
|
+
Read `workers/media-cdn/src/index.ts` ALLOWED_SUFFIXES. Cross-reference against all class-A brand domains from `app_deployments`:
|
|
121
|
+
```sql
|
|
122
|
+
SELECT DISTINCT url FROM app_deployments WHERE host_type = 'coolify' AND url NOT LIKE '%.place.fund' AND url NOT LIKE '%.regendevcorp.com';
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Flag any class-A domain NOT in ALLOWED_SUFFIXES.
|
|
126
|
+
|
|
127
|
+
**With `--fix`:** Add missing suffixes to ALLOWED_SUFFIXES and redeploy the worker.
|
|
128
|
+
|
|
129
|
+
### 9. Report
|
|
130
|
+
|
|
131
|
+
Write to `.rdc/reports/YYYY-MM-DD-housekeeping.md`:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
# Housekeeping Report — YYYY-MM-DD
|
|
135
|
+
|
|
136
|
+
## Summary
|
|
137
|
+
| Check | Pass | Fail | Fixed |
|
|
138
|
+
|-------|------|------|-------|
|
|
139
|
+
|
|
140
|
+
## Directory Structure
|
|
141
|
+
<table of targets with issues>
|
|
142
|
+
|
|
143
|
+
## PUBLISH.md URL Validation
|
|
144
|
+
<table of mismatches>
|
|
145
|
+
|
|
146
|
+
## CLAUDE.md Freshness
|
|
147
|
+
<stale entries>
|
|
148
|
+
|
|
149
|
+
## Package Health
|
|
150
|
+
<version/exports/naming issues>
|
|
151
|
+
|
|
152
|
+
## Places Compliance
|
|
153
|
+
<incomplete places>
|
|
154
|
+
|
|
155
|
+
## Orphans
|
|
156
|
+
<empty dirs, dead deployments>
|
|
157
|
+
|
|
158
|
+
## Media CDN
|
|
159
|
+
<missing allowlist entries>
|
|
160
|
+
|
|
161
|
+
## Verdict: CLEAN / HAS_ISSUES
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Lessons triage (weekly)
|
|
105
165
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
166
|
+
Before filtering or clustering, read every candidate lesson **in full**. Normalize every
|
|
167
|
+
legacy lesson that has `status` but no `lesson_status` by moving its existing value to
|
|
168
|
+
`lesson_status` and record the migration in the report. Validate that each candidate has
|
|
169
|
+
exactly one frontmatter block, canonical `lesson_status`, and the required routing fields
|
|
170
|
+
(`id`, `date`, `skill`, `runtime`, `scope`, `area`, `needs_claude`, `links`); a malformed
|
|
171
|
+
record is itself a triage finding, never an invisible parser omission.
|
|
112
172
|
|
|
113
|
-
|
|
173
|
+
Before asking Dave a single question or routing any fix, write four synthesis artifacts in
|
|
174
|
+
the weekly report: (1) a correlation table accounting for **every** candidate lesson with its
|
|
175
|
+
remediation train, shared root cause, systemic fix, owner/lifecycle, and closure evidence;
|
|
176
|
+
(2) a remediation model that collapses recurring symptoms into the smallest control set and
|
|
177
|
+
execution order; (3) a resolution audit; and (4) one compact architectural-decision table
|
|
178
|
+
with options and a recommendation for each genuine trade-off. Do not make Dave reconstruct
|
|
179
|
+
the model from serial lesson prompts. This phase is a controlled weekly workflow: synthesize
|
|
180
|
+
first, then collect the complete architectural interview, then route approved work through
|
|
181
|
+
RDC. It must never create a duplicate plan or fixit for a lesson that is already fixed or
|
|
182
|
+
sufficiently mitigated.
|
|
114
183
|
|
|
115
|
-
###
|
|
184
|
+
### 1. Cluster
|
|
116
185
|
|
|
117
|
-
|
|
118
|
-
```sql
|
|
119
|
-
SELECT DISTINCT url FROM app_deployments WHERE host_type = 'coolify' AND url NOT LIKE '%.place.fund' AND url NOT LIKE '%.regendevcorp.com';
|
|
120
|
-
```
|
|
186
|
+
Cluster by `area` + root-cause similarity and dedupe repeats into one proposed outcome. Give every cluster a stable identifier and list its lesson ids, area, evidenced root cause, proposed change, scope, and linked commits/work items.
|
|
121
187
|
|
|
122
|
-
|
|
188
|
+
### 2. Resolution audit (mandatory before routing work)
|
|
123
189
|
|
|
124
|
-
|
|
190
|
+
For every cluster, inspect the relevant code, rules, skills, guides, tests, recent commits, linked work items, and existing mitigations before creating any `rdc:fixit`, `rdc:plan`, or `rdc:build` work.
|
|
125
191
|
|
|
126
|
-
|
|
192
|
+
Record auditable evidence and classify the cluster as exactly one of:
|
|
127
193
|
|
|
128
|
-
|
|
194
|
+
- `already-fixed` — the needed behavior is present and backed by a cited source location, test, or shipped commit; do not create new work.
|
|
195
|
+
- `sufficiently-mitigated` — an existing guard, process, or documentation reduces the risk enough that no additional change is justified; do not create new work and record the remaining risk.
|
|
196
|
+
- `still-open` — the evidence does not fully address the root cause; only this result may enter the routing phase.
|
|
129
197
|
|
|
130
|
-
|
|
131
|
-
# Housekeeping Report — YYYY-MM-DD
|
|
198
|
+
The audit must name what was inspected, the evidence found or missing, the conclusion, and the reason no duplicate work was created. Mark an already-fixed lesson `lesson_status: applied` only when its prior commit is linked; mark a sufficiently-mitigated lesson `lesson_status: wont-fix` with the mitigation and remaining-risk reason. Keep partially mitigated clusters open for routing.
|
|
132
199
|
|
|
133
|
-
|
|
134
|
-
| Check | Pass | Fail | Fixed |
|
|
135
|
-
|-------|------|------|-------|
|
|
200
|
+
### 3. Architectural report and interview gate
|
|
136
201
|
|
|
137
|
-
|
|
138
|
-
<table of targets with issues>
|
|
202
|
+
After the synthesis artifacts are complete, write the full architectural report for every `still-open` architectural cluster. For each one include the decision to make, affected systems, options and tradeoffs, recommendation, unresolved risks, and the result of the resolution audit. This produces the complete decision table, but does **not** interrupt the simple remediation batch.
|
|
139
203
|
|
|
140
|
-
|
|
141
|
-
<table of mismatches>
|
|
204
|
+
Create a complete interview list from that report before changing any architectural file. In attended mode, execute and verify the correlated simple batches first, then ask every required architectural question via `AskUserQuestion`, one question at a time, and record the question, answer, decision, rationale, and affected cluster. Do not start architectural fixes until all interview questions have answers or the corresponding cluster is explicitly deferred. Silence is not approval.
|
|
142
205
|
|
|
143
|
-
|
|
144
|
-
<stale entries>
|
|
206
|
+
If there are no architectural decisions, record `Architectural interview: none required` in the report before continuing. In unattended mode, do not guess: create the equivalent `human_items` decision records for every unresolved architectural question, link a work item, and defer those clusters.
|
|
145
207
|
|
|
146
|
-
|
|
147
|
-
<version/exports/naming issues>
|
|
208
|
+
### 4. Route only still-open work through RDC
|
|
148
209
|
|
|
149
|
-
|
|
150
|
-
<incomplete places>
|
|
210
|
+
After the resolution audit, route every simple executable cluster through an RDC lifecycle with a complete work item, required checklist evidence, implementation report, review status, validator closure, commit, and push. Direct edits outside an RDC work item are forbidden. Route architectural clusters only after the complete architectural interview.
|
|
151
211
|
|
|
152
|
-
|
|
153
|
-
|
|
212
|
+
- `scope: simple` — invoke `rdc:fixit` when the change is genuinely under five files and thirty minutes; `rdc:fixit` creates and completes the sole work item. Include the cluster and lesson ids in its description and action-register entry. Otherwise use `rdc:plan` followed by `rdc:build`.
|
|
213
|
+
- `scope: architectural` — use `rdc:plan` followed by `rdc:build` unless the approved change is genuinely within the `rdc:fixit` threshold. The plan must contain the approved interview decision and acceptance checks.
|
|
214
|
+
- Deferred or declined clusters — set `lesson_status: triaged` or `lesson_status: wont-fix`, link the work item or reason, and do not make an unapproved change.
|
|
154
215
|
|
|
155
|
-
|
|
156
|
-
<missing allowlist entries>
|
|
216
|
+
Each routed wave must run the review gate: `rdc:fixit` performs its mandatory review and every batch also completes `rdc:review` before lessons are marked applied. Deploy a changed deployable target to dev through its normal RDC lifecycle and record the deployment evidence; document `not applicable` for documentation-only, rule-only, or skill-only work.
|
|
157
217
|
|
|
158
|
-
|
|
159
|
-
```
|
|
218
|
+
### 5. Complete weekly lessons report
|
|
160
219
|
|
|
161
|
-
|
|
220
|
+
Add a `## Weekly Lessons Triage` section to `.rdc/reports/YYYY-MM-DD-housekeeping.md` with:
|
|
162
221
|
|
|
163
|
-
|
|
222
|
+
1. `### Cluster and resolution audit` — cluster ids, lessons, area/cause, inspected evidence, `already-fixed` / `sufficiently-mitigated` / `still-open` result, and duplicate-work decision.
|
|
223
|
+
2. `### Architectural report` — each decision, options, tradeoffs, recommendation, risks, and audit result.
|
|
224
|
+
3. `### Architectural interview` — the complete question-and-answer list, decisions, deferrals, and clusters affected; explicitly state when none was required.
|
|
225
|
+
4. `### RDC action register` — work item, selected lifecycle (`rdc:fixit` or `rdc:plan` -> `rdc:build`), test/review evidence, commit/push, dev deployment or `not applicable`, and final lesson status.
|
|
226
|
+
5. `### Outcome counts` — open, deduped, already fixed, sufficiently mitigated, applied, triaged, wont-fix, deferred, fixits, builds, review passes, and dev deployments.
|
|
164
227
|
|
|
165
228
|
### Attended mode (default — a human is present)
|
|
166
229
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
Never
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
-
|
|
186
|
-
- Never modify app_deployments — the DB is the source of truth; PUBLISH.md conforms to it
|
|
187
|
-
- The `--fix` flag only auto-remediates safe issues (CLAUDE.md scaffold, missing dirs, URL alignment)
|
|
188
|
-
- Architectural changes (name mismatches, dead package removal) are always flagged, never auto-fixed
|
|
189
|
-
- This skill is read-heavy, write-light — most runs are audit-only
|
|
230
|
+
The attended run follows sections 1, 2, and 4 for all simple clusters first, then section 3 for the complete architectural interview, then section 4 for approved architectural work, and finally section 5. Set `lesson_status: applied` only after the routed work item has passed review, the commit is pushed, required dev deployment evidence is recorded, and the commit is linked.
|
|
231
|
+
|
|
232
|
+
### Unattended mode (no human — overnight / cron / `rdc:overnight`)
|
|
233
|
+
|
|
234
|
+
When the weekly triage runs unattended, perform the same cluster and resolution audit before any routing, then follow `.rdc/guides/lessons-learned-spec.md` § **Triage procedure — UNATTENDED weekly mode** — do not run `AskUserQuestion`. In brief (the spec is authoritative):
|
|
235
|
+
|
|
236
|
+
- **Per-difficulty model routing** (reuses the `rdc:build` table): the run is led by `claude-opus-4-8` for clustering + scope/difficulty triage; mechanical apply → `claude-sonnet-4-6`; harder multi-file/migration fix → `claude-opus-4-6`; design/architectural fix → `claude-opus-4-8`.
|
|
237
|
+
- `scope: simple` → create a complete work item and route via `rdc:fixit` or `rdc:plan` -> `rdc:build`; never apply directly.
|
|
238
|
+
- `scope: architectural` with a single clear correct fix (records an already-learned lesson — e.g. "document X", "add a gate", update a guide) → route through `rdc:plan` → `rdc:build` (or `rdc:fixit` if genuinely <5 files), update the documentation, set `lesson_status: applied`/`triaged`.
|
|
239
|
+
- `scope: architectural` **and genuinely ambiguous** (multiple valid approaches, real tradeoffs) → write a `human_items` row (`item_type='decision'`, with options in `suggested_agent_prompt`, `source_type='lesson'`, `source_fingerprint` for dedupe), set `lesson_status: triaged`, spawn + link a `work_item`. Decided in the morning. This is the asynchronous equivalent of the attended interview and honors `.claude/rules/architectural-change-approval.md`.
|
|
240
|
+
|
|
241
|
+
Never delete lesson files — `applied` and `wont-fix` stay as the audit trail.
|
|
242
|
+
|
|
243
|
+
## Rules
|
|
244
|
+
- Never run `pnpm build` — not needed for this audit
|
|
245
|
+
- Never modify app_deployments — the DB is the source of truth; PUBLISH.md conforms to it
|
|
246
|
+
- The `--fix` flag only auto-remediates safe issues (CLAUDE.md scaffold, missing dirs, URL alignment)
|
|
247
|
+
- Architectural changes (name mismatches, dead package removal) are always flagged, never auto-fixed
|
|
248
|
+
- This skill is read-heavy, write-light — most runs are audit-only
|