@lifeaitools/rdc-skills 0.24.37 → 0.24.39
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 +377 -377
- package/README.sandbox.md +3 -3
- 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 +153 -153
- 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 +56 -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 +464 -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 -554
- 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 +189 -189
- package/skills/lifeai-brochure-author/SKILL.md +340 -340
- package/skills/overnight/SKILL.md +251 -251
- package/skills/plan/SKILL.md +345 -314
- 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 +31 -31
- 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/install-rdc-skills.test.mjs +49 -49
- package/tests/manifest-contract-fields.test.mjs +78 -78
- package/tests/mcp.test.mjs +271 -271
- 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,297 +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 |
|
|
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 |
|