You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
docs/START-HERE.md — the map each reader was missing (#260) — the dogfood run
(2026-10-19/20) broke at five points the guide never covered: editing the wrong YAML file,
editing without an editor, being cut by a platform cap a green validate never warned about,
deploying by PR from the wrong directory, and links[].role: identity (the one line worth
+20 structured-data points, documented nowhere). Three routes (person · contributor · agent),
each with the mistake that route actually makes, plus the USER-GUIDE sections they read next:
the seven-step cycle of one change (§0.5), the first edit without an editor, the links[]
role rule, platform caps at edit time (§6), and deploy by PR with the .pascorc discovery
trap (§7). The issue's proposed §4.1/§8.3 were already taken (golden rule, multi-workspace),
so the new material sits at §4.4 and inside §7 — an addressed deviation, not a silent one.
Published as a page (site-config.mjs), so the same Markdown is the only copy, and CONTRIBUTING
ground rule 8 makes "the doc line" part of every dogfood finding.
Derived publication truth — pasco status now says whether the artifact is the one
the SSOT produces (SPEC §20.1, #242) — the 2026-10-19 dogfood found every gate green
while the published profile was not verified in the terms a user cares about: a green
score over an unpublished artifact, a green check over a field the platform truncates,
and a declared-but-ignored variant. Each surface with a ledger record or an artifact on
disk now gets three orthogonal axes — sync (§19, unchanged), artifact
(matches-SSOT / diverges / absent, offline, against the SSOT's current render),
and limits (ok / over(cap), the #240 catalog). Derived on every read and stored
nowhere (§20's own rule), folded into --completeness as coverage of publication
(the weighted percentage never moves because a surface drifted) and into the generated CHECKLIST.md. Additive in --json (publication), and the one cap executor moved to packages/cli/src/limits.ts so check and status share it — and the planned edit slices (#248–#252) consume it instead of a second cap table.
The platform skills ship with @profile-as-code/cli (#253) — skills/ is copied
into the package at build/pack time (files: ["dist","skills"]) and resolved from the
package root, so pasco refine prints a real SKILL.md path on an npm install instead
of the repo-dev layout a user does not have. The output now distinguishes no skill for <platform> from skills not shipped with this package; post reads the same tree.
Changed
The workspace has three top-level grains, and the scaffold now says so (#267) — content/ is identity (the SSOT), profiles/ is generated output, posts/ is the stream
(seeds + per-channel projections, #264) — never identity facts. pasco init's README
templates state the boundary for both flavors, SPEC §9's tree carries posts/, and docs/post-mvp.md names the rejected nestings (content/posts, content/identities, content/profiles). No rename, no schema change, no move of existing workspaces.
The recommended on-ramp now resolves for a stranger (#273) — profile-data-template
went public (verified 2026-10-23: gh repo view ChristianLuciani/profile-data-template --json visibility → PUBLIC, HTTP 200), so its removal trigger fired: the link-check
declaration in scripts/link-check/allowlist.json is gone (the registry is empty, the W-ALLOWLIST-UNUSED warning keeps it honest). The surfaces reconciled here — README.md, docs/USER-GUIDE.md, docs/SPEC.md §9.2, docs/STANDARDS.md (community items 4, 5, 10
and the publication section), docs/ci-cd.md, site/index.html — state the template as
public and cite the verification where they make the claim; check.mjs's header documents
the mechanism. The wider class (surfaces still calling the engine repo private) is
tracked in #293, not silently dropped. No duplication: templates/profile-data/
stays a pointer; re-scoping to a second in-repo template would have created a second source
of truth for zero reader benefit.
pasco skills:install <agent> → pasco skills:export <dir> [--force] [--list] (#254, C1) —
the CLI no longer prints a projection command for a private studio. It copies the
skill channels it ships into a directory the user names (a non-empty destination needs --force, which overlays and never deletes), and no published surface references a
path/repo/tooling the reader cannot open (rule now in AGENTS/CONTRIBUTING). The tarball
is asserted by verify:pack.
The hosted on-ramp is a declared v1 non-goal (#221), and the surfaces that still called it
a plan are reconciled (#222) — §9.2's three on-ramps (A template repo · B pasco init ·
C bring your own storage) all require a terminal, and A also an account, so a visitor with neither has no path; in particular none reaches a profile hosted by us. docs/SPEC.md §2 declares that path a v1 non-goal: the service it would need is
multi-tenant (accounts, storage, secrets, privacy, cost) and inverts the folder-first model
(D14), so it reopens only on its trigger — the first hosted use case, or M5 + web consumption
live — and as a milestone of its own, not an extension of M5 (§12 keeps M5 a consumption
renderer). docs/USER-GUIDE.md, README.md and docs/ROADMAP.md are reconciled to that
state; the #122 tracker is closed and is no longer a deliverable.