Phase ID: APG21
Partial — PostgreSQL and SQLite profiles implemented; Nix deferred
APG21 accepts ADR 0016 and retains independent provisional PostgreSQL and SQLite profiles after current-source research, separate threshold and semantic analyses, private-guidance synthesis, shared design criticism, frozen scenarios, read-only dogfood, focused tests, and fresh non-author acceptance. No generic SQL or database-operations skill is adopted.
PostgreSQL uses one bounded measurement correction to define the exact
routine-body span and parser-unavailable decision behavior without changing a
threshold value. Nix uses one bounded measurement
and source-identity correction, then exposes a second behavior-bearing dynamic-
merge scenario contradiction and is deferred-material-defect. SQLite uses one bounded correction: the
>= 13 rebuild-step Red threshold remains literal, and a
cohesive canonical rebuild may remain Orange only through the ordinary accepted
bounded-exception contract. No retained candidate has an unresolved material
defect; Nix evidence remains as the next fix-phase input.
The evaluated Nix candidate freezes fourteen concrete structural signals and separates static parsing from evaluation, fetching, build, store, builder, activation, and deletion authority. Its Red stops cover protected store exposure, untrusted shell interpretation, mutable sources, material impurity, unsafe IFD, invariant bypass, string-context removal, remote trust, activation, and destructive store operations. Its closed dynamic-merge response remains internally unresolved after the allowed correction, so no Nix leaf is retained.
The PostgreSQL profile freezes thirteen concrete structural signals while keeping live relation size, locks, transaction age, WAL, replication, privileges, and restore facts project-owned. Its Red stops cover injection, unresolved live lock/rewrite risk, unbounded backfills and transactions, RLS and definer-path bypass, false semantic labels, partial migrations, untested backup reliance, protected data, extensions, replication, and unauthorized live access.
The SQLite profile freezes twelve concrete structural signals while keeping
writer contention, journal state, filesystem behavior, permissions, and
restore facts project-owned. Its Red stops cover injection and extensions,
writer/retry assumptions, WAL/network and sidecar hazards, foreign-key and
integrity disablement, unsafe rebuilds, durability pragmas, row identity,
URI/path/ATTACH access, untested backup reliance, protected data, destructive
file replacement, and unauthorized live access.
All fifteen shared scenarios and 20 of 21 Nix scenarios pass; the failing dynamic-merge scenario controls deferral. All shared and all 25 PostgreSQL and 25 SQLite scenarios pass. Dogfood is read-only and uses public maintained source, official documentation examples, and public-safe synthetic operational cases. No Nix evaluation, build, or activation and no database open or execution occurred.
Private development contains 16 canonical leaves, 16 relative projections, 6 stable process rows, 10 provisional rows, and 15 routable non-router capability-map entries. PostgreSQL and SQLite are known-unmanaged development skills; Nix is not integrated. The six v0.2 managed defaults and project, user, and release schema version 1 remain unchanged. Public v0.2.0 and the active public- backed integration remain 6/6/6.
Profile-contract, route, project, checker, release, user, report, phase/ADR/exit identity, syntax, help, documentation, privacy, durable-reference, link, mode, schema, whitespace, and complete-diff gates pass. Fresh Nix, PostgreSQL, SQLite, relational-ownership, threshold, integration/distribution, current-document, identity, and complete-diff reviews accept the retained profiles and Nix deferral. Preexisting skill and distribution bytes remain unchanged except for the bounded workflow- router wording required to route current domain profiles.
No root guidance was removed, no private skill was decommissioned, and no dependency, plugin, generic SQL skill, ZUnit, manager-prompt skill, public release, active-integration mutation, schema change, application smoke, or APG22 work occurred.
Pre-release smoke is not ready because APG22 and APG23 remain roadmap work. APG22 requires separate human authorization.
APG21A corrects the retained Nix defect ledger, retains the reconstructed Nix profile provisionally, and applies one bounded PostgreSQL false-escalation correction. SQLite and router behavior remain accepted. Current development is 17 canonical leaves, 17 catalog rows, 17 projections, 6 stable rows, 11 provisional rows, and 16 routes. APG21’s partial disposition remains the truthful terminal outcome of this phase.