Skip to content

v0.3.5

Choose a tag to compare

@github-actions github-actions released this 24 Oct 03:49
· 621 commits to main since this release
c69e6b7

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.