agentic-praxis-grimoire

APG20A Go and Ruby Profile Corrections

Phase ID: APG20A

Outcome

Complete — Go and Ruby profile defects corrected and both profiles implemented.

APG20A accepts APG20’s truthful deferrals as its defect ledger. The initial corrected candidates incorporate every recorded finding, pass their frozen and defect-specific scenarios, and are retained as independent provisional development skills. Go uses one bounded new correction for clause-exact decision counting. Ruby uses one bounded new correction to exclude ordinary statically named public dispatch from dynamic-family breadth.

Corrected Go profile

The Go profile now distinguishes website prose, displayed code, source-distribution material, and third-party module licensing. Exported-API measurement specifies grouped declarations, aliases, generics, direct and promoted members, generated declarations, tests, and supported build variants. Local-binding measurement includes nested lexical blocks and separates material closure captures. Protected-data review covers every recorded sink family. The semantic guide explicitly covers errors, context, concurrency, resources, APIs, reflection, unsafe, cgo, subprocesses, and performance.

Read-only Go 1.26.5 calibration supplies truthful Green, Yellow, Orange, maintained Red, generated, semantic, and synthetic legacy cases. No current upstream source is relabeled legacy.

Corrected Ruby profile

The Ruby profile now gives explicit responses for bounded and unsafe dynamic dispatch, runtime evaluation and mutation, shared mutable state, thread/fiber/ractor lifecycle, and authorized public compatibility changes. The source boundary records Ruby 4.0.6 and RubyGems/Bundler 4.0.16 and preserves Ruby distribution exceptions and RubyGems/Bundler dual-license terms.

Read-only calibration supplies a genuine maintained 12-line Green case, truthful Yellow, Orange, maintained Red, generated, semantic, and synthetic legacy cases. The maintainer sample remains Orange on non-line signals.

Report-lock correction

The APG20 concurrency retry reproduced as a report append-lock race. A lock holder could release its directory between failed acquisition and type validation. The helper now retries disappearance across both release windows, continues to reject unsafe lock objects, and has a deterministic regression.

Resulting development boundary

Private development contains 14 canonical skills and projections, 6 stable rows, 8 provisional rows, and 13 routable non-router capability-map entries. Go and Ruby are known-unmanaged development profiles. The six v0.2 managed defaults and schema-version-1 project, user, and release contracts are unchanged. Public v0.2.0 and the active integration remain 6/6/6.

Validation and authority

Profile contract, routing, threshold, Red-stop, project integration, report- tool, checker, release, user, identity, syntax, documentation, privacy, and whitespace gates pass. Fresh non-author profile, defect, integration, documentation, and complete-diff reviews accept the resulting tree.

No root guidance, private skill, public release, active integration, dependency, plugin, state schema, application smoke, or later profile family changed in APG20A. APG21 is authorized only after APG20A is committed, pushed, remote-equal, and fully reported.