@lifeaitools/rdc-skills 0.9.38 → 0.11.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.
@@ -0,0 +1,297 @@
1
+ ---
2
+ type: spec
3
+ role: history-md
4
+ systems: [place-fund, prt, plan]
5
+ schema_version: "1.0"
6
+ tags: [history-md, spec, rdc-skills, place-fund]
7
+ ---
8
+ # HISTORY.md — Authoritative Specification
9
+ > Version: 1.0 | Effective: 2026-05-22
10
+
11
+ Every land-based project in the Place Fund ecosystem that satisfies the trigger predicate below
12
+ MUST carry a `places/<prt_slug>/HISTORY.md` file in the regen-root monorepo.
13
+ Skills that plan, scaffold, and validate real-estate PRT projects read this file to verify
14
+ research provenance, lineage completeness, and research lifecycle status.
15
+
16
+ ---
17
+
18
+ ## Purpose
19
+
20
+ `HISTORY.md` is the **land lineage record** for a Place Fund project — the authoritative
21
+ document linking a `prt_projects` row to its physical, ecological, cultural, and regulatory
22
+ history. It is NOT a marketing document. It is a research-grade provenance record that:
23
+
24
+ - Provides due-diligence depth for regenerative land stewardship decisions
25
+ - Anchors the project's data to verifiable primary sources (county records, PLSS, BLM, state archives)
26
+ - Tracks research lifecycle from `draft` through `peer-reviewed` so consumers know what to trust
27
+ - Enables the Place Fund's ecological and conservation underwriting to be audited independently
28
+
29
+ A missing or stub `HISTORY.md` signals that research is pending. A `published` one signals
30
+ that the record has been reviewed and is fit for external use.
31
+
32
+ ---
33
+
34
+ ## Trigger Predicate
35
+
36
+ A `prt_projects` row **requires** a `places/<slug>/HISTORY.md` when ALL of:
37
+
38
+ 1. `project_type IN ('ranch','eco-hospitality','mixed','conservation','regenerative-agriculture','real-estate','development')`
39
+ 2. `name IS NOT NULL` (always true for active rows)
40
+ 3. AT LEAST ONE OF:
41
+ - `location_state IS NOT NULL`
42
+ - `location_city IS NOT NULL`
43
+ - `country IS NOT NULL`
44
+ - `total_acres IS NOT NULL`
45
+ - `lat IS NOT NULL`
46
+ - `EXISTS (SELECT 1 FROM geo_parcels WHERE project_id = prt_projects.id)`
47
+ - `EXISTS (SELECT 1 FROM geo_projects WHERE prt_project_id = prt_projects.id)` — a geo_projects join indicates real GIS data exists for this place, even if lat/lng on prt_projects is unset
48
+
49
+ **Excluded by default:** `project_type IN ('credit','water','tech','regenerative-model')` — these
50
+ are credit instruments or abstract models, not physical land parcels. Individual rows may be
51
+ opted in manually by a supervisor if a composite history is warranted.
52
+
53
+ As a SQL check (used by the validator):
54
+
55
+ ```sql
56
+ SELECT slug, name, project_type, location_state, location_city, country, total_acres, lat
57
+ FROM prt_projects
58
+ WHERE is_template IS NOT TRUE
59
+ AND project_type IN ('ranch','eco-hospitality','mixed','conservation',
60
+ 'regenerative-agriculture','real-estate','development')
61
+ AND (
62
+ location_state IS NOT NULL
63
+ OR location_city IS NOT NULL
64
+ OR country IS NOT NULL
65
+ OR total_acres IS NOT NULL
66
+ OR lat IS NOT NULL
67
+ OR EXISTS (SELECT 1 FROM geo_parcels WHERE project_id = prt_projects.id)
68
+ OR EXISTS (SELECT 1 FROM geo_projects WHERE prt_project_id = prt_projects.id)
69
+ )
70
+ ORDER BY slug;
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Schema
76
+
77
+ ### Frontmatter Fields
78
+
79
+ Every `HISTORY.md` begins with YAML frontmatter bounded by `---` delimiters.
80
+
81
+ ```yaml
82
+ ---
83
+ schema_version: "1.0"
84
+ prt_slug: SLUG
85
+ project_type: ranch
86
+ location:
87
+ county: COUNTY
88
+ state: STATE
89
+ country: COUNTRY
90
+ parcel_apn: APN
91
+ area_acres: ACRES
92
+ centroid: [LAT, LNG]
93
+ acquired: "YYYY-MM-DD"
94
+ steward: STEWARD_NAME
95
+ research_status: draft
96
+ last_reviewed: "YYYY-MM-DD"
97
+ contributors: []
98
+ ---
99
+ ```
100
+
101
+ ### Field Reference
102
+
103
+ | Field | Type | Required | Notes |
104
+ |-------|------|----------|-------|
105
+ | `schema_version` | string | yes | Always `"1.0"` for this revision |
106
+ | `prt_slug` | string | yes | Must match `prt_projects.slug` exactly (case-sensitive) |
107
+ | `project_type` | string | yes | Echo from `prt_projects.project_type` |
108
+ | `location` | object | yes | Nested block — see sub-fields below |
109
+ | `location.county` | string | no | County or district name |
110
+ | `location.state` | string | no | State or province name or abbreviation |
111
+ | `location.country` | string | no | Country name; omit if USA |
112
+ | `location.parcel_apn` | string | no | Assessor's Parcel Number (APN) or equivalent |
113
+ | `location.area_acres` | number | no | Total acreage from authoritative source |
114
+ | `location.centroid` | [lat, lng] | no | Decimal-degree centroid coordinates |
115
+ | `acquired` | ISO date | no | Acquisition date (`YYYY-MM-DD`); omit if unknown |
116
+ | `steward` | string | yes | Current stewarding entity or person |
117
+ | `research_status` | enum | yes | One of: `draft` · `in-research` · `peer-reviewed` · `published` |
118
+ | `last_reviewed` | ISO date | yes | Date this file was last substantively reviewed |
119
+ | `contributors` | string[] | yes | Array of contributor identifiers (may be empty `[]`) |
120
+
121
+ #### `research_status` semantics
122
+
123
+ | Value | Meaning |
124
+ |-------|---------|
125
+ | `draft` | Stub created; no primary-source research yet |
126
+ | `in-research` | Active research underway; primary sources being identified |
127
+ | `peer-reviewed` | Research complete; reviewed by at least one secondary reviewer |
128
+ | `published` | Record approved for external publication and citation |
129
+
130
+ The validator will warn (not fail) on `draft` rows — they are expected during initial rollout.
131
+ The validator will fail if `research_status` is not one of the four allowed values.
132
+
133
+ ---
134
+
135
+ ## Required Body Sections
136
+
137
+ The body of `HISTORY.md` must contain all five section headings in order. Each section may
138
+ contain a TODO marker during draft status; it must contain substantive prose at `published`.
139
+
140
+ ### `## Land lineage`
141
+
142
+ Deep time through present ownership. Cover:
143
+ - Pre-contact landscape and ecological baseline
144
+ - Indigenous stewardship, use patterns, and territorial context
145
+ - Spanish/Mexican land grants (if applicable)
146
+ - US government survey and PLSS reference (township, range, section)
147
+ - Homestead entry, patent, and early title chain
148
+ - Major ownership transitions to present
149
+
150
+ ### `## Stewardship transitions`
151
+
152
+ Timeline of stewardship changes. Cover:
153
+ - Each major ownership or management transfer with approximate dates
154
+ - Conservation easements, deed restrictions, and encumbrances
155
+ - Use-change inflection points (e.g. dryland → irrigated, grazing → timber)
156
+ - Current stewardship entity and tenure
157
+
158
+ ### `## Ecological context`
159
+
160
+ Physical and biological baseline. Cover:
161
+ - Ecoregion and watershed affiliation
162
+ - Soil classifications (NRCS Web Soil Survey references)
163
+ - Vegetation communities and cover types
164
+ - Water resources (streams, springs, riparian areas, aquifer)
165
+ - Wildlife corridors and listed species presence/absence
166
+ - Fire history and disturbance regime
167
+
168
+ ### `## Cultural significance`
169
+
170
+ Human geography and intangible values. Cover:
171
+ - Indigenous place names and cultural associations (cite tribal consultation if any)
172
+ - Historic structures, archaeological sites, or cultural landscapes (Section 106 if applicable)
173
+ - Community significance — grazing allotments, water rights, access traditions
174
+ - Scenic and recreational values
175
+
176
+ ### `## Regulatory record`
177
+
178
+ Legal, regulatory, and administrative context. Cover:
179
+ - Zoning and land use designations
180
+ - Conservation easements held by land trusts (ACE, TNC, CLT, etc.)
181
+ - Water rights adjudications
182
+ - Federal and state permits (grazing permits, NEPA actions, ESA consultations)
183
+ - Tax status (agricultural classification, conservation land designation)
184
+ - Open title or lien issues of record
185
+
186
+ ---
187
+
188
+ ## File Location Convention
189
+
190
+ ```
191
+ C:/Dev/regen-root/places/<prt_slug>/HISTORY.md
192
+ ```
193
+
194
+ The directory is named using the **sanitized slug** — lowercase, no special characters,
195
+ hyphens for separators. If `prt_projects.slug` contains uppercase letters (e.g. `Diamond`),
196
+ the filesystem path uses `diamond/HISTORY.md` while `prt_slug` in frontmatter preserves
197
+ the exact DB value (`Diamond`).
198
+
199
+ ---
200
+
201
+ ## Enforcement Layers
202
+
203
+ ### Layer 1 — Workflow scaffold (`rdc:plan`)
204
+
205
+ When `rdc:plan` creates a new `prt_projects` row with a qualifying `project_type`, it reads
206
+ this spec and produces a stub `places/<slug>/HISTORY.md` from `scaffold/templates/HISTORY.md.template`.
207
+ The stub is committed alongside the epic creation commit so the file is never absent from day one.
208
+
209
+ ### Layer 2 — Validator script
210
+
211
+ `C:/Dev/rdc-skills/scripts/validate-place-histories.js` runs in two modes:
212
+
213
+ | Mode | Behavior | Exit code |
214
+ |------|----------|-----------|
215
+ | `--mode warn` (default) | Missing or malformed HISTORY.md emits WARN; exits 0 | 0 |
216
+ | `--mode fail` | Missing or malformed HISTORY.md emits FAIL; exits 1 | 1 |
217
+
218
+ The validator is wired into the `rdc-skills` `prepack` step (warn mode) so it runs on every
219
+ package publish and surfaces gaps without blocking.
220
+
221
+ ### Layer 3 — Optional DB gate (future)
222
+
223
+ A `history_md_status` column on `prt_projects` can mirror `research_status` from frontmatter
224
+ via a sync script. This enables Supabase-side filtering of projects by research completeness.
225
+ Not implemented in v1 — planned for a future epic.
226
+
227
+ ---
228
+
229
+ ## Consumer Integration
230
+
231
+ ### `rdc:plan`
232
+
233
+ When scaffolding a new real-estate PRT project:
234
+ 1. Check if `project_type` satisfies the trigger predicate.
235
+ 2. If yes: hydrate `HISTORY.md.template` with DB row metadata and write `places/<slug>/HISTORY.md`.
236
+ 3. Commit the stub alongside the epic creation commit.
237
+
238
+ ### `rdc:review` / `rdc:build`
239
+
240
+ When the build scope touches `apps/prt/`:
241
+ 1. Run `node C:/Dev/rdc-skills/scripts/validate-place-histories.js --mode warn`.
242
+ 2. Surface any WARN lines in the review output.
243
+ 3. Do not block on warn — block only on FAIL (malformed frontmatter).
244
+
245
+ ---
246
+
247
+ ## Example — Dos Pueblos Ranch (dp-phased-model)
248
+
249
+ ```markdown
250
+ ---
251
+ schema_version: "1.0"
252
+ prt_slug: dp-phased-model
253
+ project_type: ranch
254
+ location:
255
+ county: Santa Barbara
256
+ state: California
257
+ country:
258
+ parcel_apn:
259
+ area_acres:
260
+ centroid:
261
+ acquired:
262
+ steward: Dos Pueblos Ranch LLC
263
+ research_status: draft
264
+ last_reviewed: "2026-05-22"
265
+ contributors: []
266
+ ---
267
+
268
+ > This is a draft stub. Research pending. Status will be promoted to in-research once primary sources are identified.
269
+
270
+ ## Land lineage
271
+
272
+ TODO: Research land lineage of Dos Pueblos Ranch. Cover Chumash territory, Spanish rancho land grant (Rancho Dos Pueblos, c. 1842), Mexican land commission adjudication, US patent, and ownership chain to present.
273
+
274
+ ## Stewardship transitions
275
+
276
+ TODO: Document major ownership and use transitions for Dos Pueblos Ranch from rancho era through current orchid and agricultural operations.
277
+
278
+ ## Ecological context
279
+
280
+ TODO: Document ecoregion (Southern California Coast Ranges), chaparral and oak woodland communities, seasonal streams, and proximity to coastal wetlands.
281
+
282
+ ## Cultural significance
283
+
284
+ TODO: Research Chumash place names and village associations. Note proximity to historic Chumash settlements along the Santa Barbara coast.
285
+
286
+ ## Regulatory record
287
+
288
+ TODO: Document zoning (Santa Barbara County agricultural/rural zones), any conservation easements, and water rights in Goleta Water District service area.
289
+ ```
290
+
291
+ ---
292
+
293
+ ## Changelog
294
+
295
+ | Version | Date | Change |
296
+ |---------|------|--------|
297
+ | 1.0 | 2026-05-22 | Initial spec — trigger predicate, schema, 5 required sections, 3-layer enforcement |
@@ -0,0 +1,289 @@
1
+ ---
2
+ type: spec
3
+ role: publish-md
4
+ systems: [deploy, release, plan]
5
+ schema_version: "1.0"
6
+ tags: [publish-md, spec, rdc-skills]
7
+ ---
8
+ # PUBLISH.md — Authoritative Specification
9
+ > Version: 1.0 | Effective: 2026-05-22
10
+ > Architectural approval: 2026-05-22 interview (Option A — Full Rollout)
11
+
12
+ Every deployable target in the RDC ecosystem MAY carry a `PUBLISH.md` file
13
+ in its root directory. Skills that deploy, release, and plan read this file
14
+ to derive watch paths, surface metadata, and promotion gates.
15
+
16
+ ---
17
+
18
+ ## Schema
19
+
20
+ A `PUBLISH.md` file consists of two parts:
21
+
22
+ 1. **YAML frontmatter** — app-level metadata, bounded by `---` delimiters.
23
+ 2. **One or more surface sections** — per-surface metadata, bounded by
24
+ HTML comment markers (`<!-- SURFACE:<name> -->` … `<!-- /SURFACE:<name> -->`).
25
+
26
+ Frontmatter is authoritative. Surface sections are the publish manifest.
27
+
28
+ ---
29
+
30
+ ## Frontmatter Fields
31
+
32
+ All fields are required unless marked optional.
33
+
34
+ ```yaml
35
+ ---
36
+ schema_version: "1.0" # (required) always "1.0" for this revision
37
+ entity_slug: <slug> # (required) matches app_deployments.app_slug
38
+ artifact_type: <type> # (required) one of: website | api | package | worker | mcp-server
39
+ environments: [dev] # (required) array; subset of: dev, prod
40
+ status: active # (required) one of: active | draft | deprecated
41
+ notes: "" # (optional) free-text, ignored by validator
42
+ ---
43
+ ```
44
+
45
+ ### Field Reference
46
+
47
+ | Field | Type | Required | Allowed Values |
48
+ |-------|------|----------|---------------|
49
+ | `schema_version` | string | yes | `"1.0"` |
50
+ | `entity_slug` | string | yes | must match `app_deployments.app_slug` |
51
+ | `artifact_type` | string | yes | `website` · `api` · `package` · `worker` · `mcp-server` |
52
+ | `environments` | string[] | yes | subset of `[dev, prod]`; at least one required |
53
+ | `status` | string | yes | `active` · `draft` · `deprecated` |
54
+ | `notes` | string | no | free-text annotation |
55
+
56
+ #### `environments` semantics
57
+
58
+ - `[dev]` — surface is only available on the PM2 dev server
59
+ - `[prod]` — surface is only available on the Coolify production instance
60
+ - `[dev, prod]` — surface exists in both tiers
61
+
62
+ The validator enforces: each value in `environments` must match an
63
+ `app_deployments.environment` row for the same `entity_slug`.
64
+
65
+ #### `status` semantics
66
+
67
+ - `active` — `rdc:release` promotion is allowed
68
+ - `draft` — `rdc:release` will block and print a warning; dev deploy is allowed
69
+ - `deprecated` — `rdc:release` will block; validator flags as warn
70
+
71
+ ---
72
+
73
+ ## Surface Sections
74
+
75
+ Each deployable surface gets one managed section inside the PUBLISH.md body.
76
+ Sections are bounded by HTML comment markers so skills can read and rewrite
77
+ them without clobbering hand-authored prose.
78
+
79
+ ```
80
+ <!-- SURFACE:<name> -->
81
+ path: /
82
+ source_dir: apps/baru-website
83
+ build_type: nextjs
84
+ visibility: public
85
+ cache: no-store
86
+ watch_paths:
87
+ - apps/baru-website/**
88
+ - packages/ui/**
89
+ - packages/supabase/**
90
+ <!-- /SURFACE:<name> -->
91
+ ```
92
+
93
+ ### Surface Field Reference
94
+
95
+ | Field | Type | Required | Description |
96
+ |-------|------|----------|-------------|
97
+ | `path` | string | yes | URL path prefix served by this surface (e.g. `/`, `/api`) |
98
+ | `source_dir` | string | yes | Monorepo-relative path to the source directory |
99
+ | `build_type` | string | yes | `nextjs` · `static` · `docker` · `node` · `edge` |
100
+ | `visibility` | string | yes | `public` · `private` · `internal` |
101
+ | `cache` | string | yes | HTTP cache directive: `no-store` · `immutable` · `stale-while-revalidate` · `max-age=N` |
102
+ | `watch_paths` | string[] | yes | gitignore-style globs; at least one required. These are unioned to derive Coolify `watch_paths`. |
103
+ | `artifact_id` | string | no | Stable ID for `artifact_registry` upserts; defaults to `<entity_slug>/<name>` |
104
+
105
+ ### `<name>` convention
106
+
107
+ The surface name appears in the comment markers and must be a short,
108
+ lowercase, hyphen-separated identifier that describes the surface:
109
+
110
+ - `website` — primary web UI
111
+ - `api` — REST/GraphQL API
112
+ - `mcp` — Model Context Protocol server endpoint
113
+ - `worker` — background worker or cron
114
+ - `static` — purely static asset serving
115
+
116
+ Multiple surfaces are allowed per file (e.g. a Next.js app that also exposes
117
+ an API surface under `/api`).
118
+
119
+ ---
120
+
121
+ ## Environments Array
122
+
123
+ The top-level `environments` field declares which deployment tiers host this app.
124
+ Each surface inherits the app-level `environments` unless overridden at the
125
+ surface level (not supported in schema v1.0 — planned for v1.1).
126
+
127
+ Validator enforcement:
128
+ 1. At least one environment must be declared.
129
+ 2. Each declared environment must be one of `dev` or `prod`.
130
+ 3. Each declared environment must have a corresponding `app_deployments` row for the `entity_slug`.
131
+
132
+ `rdc:deploy` uses `environments` to determine whether a dev or prod deploy is
133
+ appropriate for the given target. `rdc:release` requires `prod` to be present
134
+ before promoting.
135
+
136
+ ---
137
+
138
+ ## Opt-out (File Absence)
139
+
140
+ **PUBLISH.md absence = opt-out.** There is no sentinel field, no `publish: false`.
141
+
142
+ A deployable target without a `PUBLISH.md`:
143
+ - Is skipped by `rdc:deploy`'s watch-paths derivation step.
144
+ - Is NOT inserted into `artifact_registry` on deploy.
145
+ - Is flagged as a **warn** (not fail) by the validator during the Option A rollout period.
146
+ - Will become a **fail** once the rollout is complete (controlled by the `--strict` flag on the validator).
147
+
148
+ Packages and libraries that are not independently deployed (e.g. `@regen/ui`)
149
+ do not require a `PUBLISH.md`. Only targets with a row in `app_deployments` are in scope.
150
+
151
+ ---
152
+
153
+ ## Validator Contract
154
+
155
+ The validator (`scripts/validate-publish-manifests.js`) operates in two modes:
156
+
157
+ ### Warn mode (default, during rollout)
158
+
159
+ In warn mode the validator:
160
+ - Queries `app_deployments` for all `status = 'active'` rows.
161
+ - For each row, checks whether a `PUBLISH.md` exists at the expected path.
162
+ - For rows without `PUBLISH.md`: emits a `WARN` line and continues.
163
+ - For rows WITH `PUBLISH.md`: parses YAML frontmatter and validates all required fields.
164
+ - If frontmatter is invalid (missing required field, bad enum value): emits a `FAIL` line.
165
+ - Exits 0 if there are no `FAIL` lines (warns are non-fatal in this mode).
166
+
167
+ ### Strict mode (`--strict`)
168
+
169
+ In strict mode:
170
+ - Missing `PUBLISH.md` is treated as `FAIL`, not `WARN`.
171
+ - Exits non-zero if any registered active app is missing a manifest.
172
+ - Used in CI after Option A rollout is complete.
173
+
174
+ ### Field validation rules
175
+
176
+ | Check | Fail condition |
177
+ |-------|---------------|
178
+ | `schema_version` present | missing or not `"1.0"` |
179
+ | `entity_slug` present | missing or empty string |
180
+ | `artifact_type` present | missing or not in allowed set |
181
+ | `environments` present | missing, empty array, or contains unknown value |
182
+ | `status` present | missing or not in allowed set |
183
+ | At least one surface section | no `<!-- SURFACE: -->` markers found |
184
+ | `watch_paths` non-empty | surface section has no `watch_paths` entries |
185
+
186
+ ---
187
+
188
+ ## Consumer Skills
189
+
190
+ ### `rdc:deploy`
191
+
192
+ Reads PUBLISH.md during the deploy pre-flight step:
193
+
194
+ 1. Locates `PUBLISH.md` in the app's `source_dir`.
195
+ 2. Parses YAML frontmatter — fails deploy if invalid.
196
+ 3. Unions all `watch_paths` across surface sections.
197
+ 4. Updates `app_deployments.watch_paths` with the union.
198
+ 5. After a successful deploy, calls `storeArtifact` (INSERT into `artifact_registry`) for each surface section.
199
+
200
+ If `PUBLISH.md` is absent, `rdc:deploy` skips steps 2–5 and proceeds with the deploy without watch-path derivation.
201
+
202
+ ### `rdc:release`
203
+
204
+ Reads PUBLISH.md during the promotion pre-flight gate:
205
+
206
+ 1. Locates `PUBLISH.md` in the app's `source_dir`.
207
+ 2. Checks `status` field — blocks promotion if `status != "active"`.
208
+ 3. Checks `environments` array — blocks promotion if `prod` is not declared.
209
+ 4. If checks pass, proceeds with Coolify promotion.
210
+
211
+ ### `rdc:plan`
212
+
213
+ When scaffolding a new app, reads the `PUBLISH.md.template` from
214
+ `scaffold/templates/` and hydrates it with the app's metadata to produce
215
+ a starter `PUBLISH.md` in the new app directory.
216
+
217
+ ---
218
+
219
+ ## Example PUBLISH.md — baru-website
220
+
221
+ ```markdown
222
+ ---
223
+ schema_version: "1.0"
224
+ entity_slug: baru-website
225
+ artifact_type: website
226
+ environments: [dev]
227
+ status: active
228
+ notes: "Baru.dev — reference implementation for PUBLISH.md convention"
229
+ ---
230
+
231
+ # baru-website
232
+
233
+ <!-- SURFACE:website -->
234
+ path: /
235
+ source_dir: apps/baru-website
236
+ build_type: nextjs
237
+ visibility: public
238
+ cache: no-store
239
+ watch_paths:
240
+ - apps/baru-website/**
241
+ - packages/ui/**
242
+ - packages/supabase/**
243
+ <!-- /SURFACE:website -->
244
+ ```
245
+
246
+ ---
247
+
248
+ ## Example PUBLISH.md — regen-media MCP server
249
+
250
+ ```markdown
251
+ ---
252
+ schema_version: "1.0"
253
+ entity_slug: regen-media
254
+ artifact_type: mcp-server
255
+ environments: [dev, prod]
256
+ status: active
257
+ notes: "Regen Media MCP — R2 image library, Flux/MJ generation, embeddings"
258
+ ---
259
+
260
+ # regen-media
261
+
262
+ <!-- SURFACE:mcp -->
263
+ path: /mcp
264
+ source_dir: mcp-servers/regen-media
265
+ build_type: docker
266
+ visibility: internal
267
+ cache: no-store
268
+ watch_paths:
269
+ - mcp-servers/regen-media/**
270
+ <!-- /SURFACE:mcp -->
271
+
272
+ <!-- SURFACE:api -->
273
+ path: /api
274
+ source_dir: mcp-servers/regen-media
275
+ build_type: docker
276
+ visibility: private
277
+ cache: no-store
278
+ watch_paths:
279
+ - mcp-servers/regen-media/**
280
+ <!-- /SURFACE:api -->
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Changelog
286
+
287
+ | Version | Date | Change |
288
+ |---------|------|--------|
289
+ | 1.0 | 2026-05-22 | Initial spec — OQ-1/OQ-2/OQ-3 resolved; Option A Full Rollout approved |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifeaitools/rdc-skills",
3
- "version": "0.9.38",
3
+ "version": "0.11.0",
4
4
  "description": "RDC typed-agent dispatch skill suite for Claude Code - plan, build, review, overnight builds",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -19,7 +19,7 @@
19
19
  "type": "plugin",
20
20
  "skills": "skills/",
21
21
  "guides": "guides/",
22
- "version": "0.9.38",
22
+ "version": "0.10.0",
23
23
  "commands": "commands/"
24
24
  },
25
25
  "bin": {
@@ -32,6 +32,10 @@
32
32
  "uninstall:unix": "bash scripts/uninstall.sh",
33
33
  "validate": "node tests/validate-skills.js",
34
34
  "rdc-design": "node scripts/rdc-design-cli.mjs",
35
- "test:hooks": "node scripts/test-rdc-hooks.mjs"
35
+ "test:hooks": "node scripts/test-rdc-hooks.mjs",
36
+ "prepack": "node scripts/validate-publish-manifests.js --mode warn || true && node scripts/validate-place-histories.js --mode warn || true"
37
+ },
38
+ "devDependencies": {
39
+ "yaml": "^2.9.0"
36
40
  }
37
41
  }
@@ -0,0 +1,39 @@
1
+ ---
2
+ schema_version: "1.0"
3
+ prt_slug: "PRT_SLUG"
4
+ project_type: PROJECT_TYPE
5
+ location:
6
+ county: LOCATION_COUNTY
7
+ state: LOCATION_STATE
8
+ country: LOCATION_COUNTRY
9
+ parcel_apn: PARCEL_APN
10
+ area_acres: AREA_ACRES
11
+ centroid: [LAT, LNG]
12
+ acquired: "ACQUIRED_DATE"
13
+ steward: STEWARD_NAME
14
+ research_status: draft
15
+ last_reviewed: "LAST_REVIEWED_DATE"
16
+ contributors: []
17
+ ---
18
+
19
+ > This is a draft stub. Research pending. Status will be promoted to in-research once primary sources are identified.
20
+
21
+ ## Land lineage
22
+
23
+ TODO: Research land lineage of PROJECT_NAME. Cover indigenous stewardship, land grants, ownership transitions, and government survey references (PLSS township/range/section).
24
+
25
+ ## Stewardship transitions
26
+
27
+ TODO: Document major ownership and use transitions for PROJECT_NAME from earliest recorded title to present. Include conservation easements, deed restrictions, and use-change inflection points.
28
+
29
+ ## Ecological context
30
+
31
+ TODO: Document the ecoregion, watershed, soil classifications (NRCS Web Soil Survey), vegetation communities, water resources, wildlife corridors, and fire history for PROJECT_NAME.
32
+
33
+ ## Cultural significance
34
+
35
+ TODO: Research indigenous place names and cultural associations, historic structures, archaeological sites, community significance (grazing allotments, water rights, access traditions), and scenic values for PROJECT_NAME.
36
+
37
+ ## Regulatory record
38
+
39
+ TODO: Document zoning, conservation easements, water rights adjudications, federal and state permits, tax status, and any open title or lien issues of record for PROJECT_NAME.
@@ -0,0 +1,21 @@
1
+ ---
2
+ schema_version: "1.0"
3
+ entity_slug: "ENTITY_SLUG"
4
+ artifact_type: "ARTIFACT_TYPE"
5
+ environments: [dev]
6
+ status: draft
7
+ notes: ""
8
+ ---
9
+
10
+ # ENTITY_SLUG
11
+
12
+ <!-- SURFACE:website -->
13
+ path: /
14
+ source_dir: SOURCE_DIR
15
+ build_type: BUILD_TYPE
16
+ visibility: public
17
+ cache: no-store
18
+ watch_paths:
19
+ - SOURCE_DIR/**
20
+ - packages/ui/**
21
+ <!-- /SURFACE:website -->