Repository navigation
Initial scaffold: empty Eldunarya and Arif scaffolds with a stdlib-only bootstrap CLI - #1
Merged
Merged
Conversation
Implements the locked architecture (D1 to D9) and the locked wording of the protean-context component: the ingredient surface (README with the contract sentence as line 1, discoverability skill, bootstrap CLI, Eldunarya and Arif templates, the four schema documents, the eight gates plus the fresh-install and post-install gates, synthetic fixtures, the behavioral and CLI test suites, the standalone installer, the descriptor, and an MIT license), the ordered 14-step gate runner in build/verify-all.py, and one minimal workflow that runs it on push and on pull requests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR body: protean-context implementation (v0.1.0)
Target:
aska-digital/protean-context, basemain.What this adds
The full v0.1.0 ingredient surface, per the locked architecture (decision record D1 through D9 of the protean-context lock (2026-09-22)) and the locked wording record (STABLE 2026-09-22):
protean-ingredient.jsoncontract), the locked skeleton sections, and the license and attribution line.skills/protean-context/SKILL.md: discoverability and operator instructions only, no runtime code.scripts/protean-context/bootstrap.py: stdlib-only CLI withplan,init,verify,ingest,remove.templates/protean-context/: Eldunarya templates (eldunarya.json,ROUTER.template.md,modules/README.template.md), Arif templates (arif.json,adapters/README.md, emptyrecords/,content/,index/), four schema documents, anddocs/rehoming.md.gates/protean-context/: eight gate scripts,fresh-install-test.py, andcheck-post-install.py.fixtures/(synthetic only),tests/(unittest suites for steps 9 to 13 and the CLI suite),build/verify-all.py(14-step ordered runner),protean-ingredient.json,install.sh,CHANGELOG.md, MITLICENSE, and one minimal.github/workflows/verify.yml.Decisions implemented (D1 to D9)
plugin.jsandmcp.jsonis proven by read-back.protean-context; contract line adopted verbatim from the wording record section 1; description and the six topics are set on the repository before announcement (metadata change is part of the release checklist, not this PR).schema+schemaVersion; naming regex and reserved names (eldunari,eldunarya,arif, exit 1);ROUTER.mdrouter-only semantics with Purpose, Rules, and Pointers; one-fact-one-home invariant in themodules/stub; gate 6 allowlist entries foreldunari,eldunarya, andarifcite this decision record.file-v1, metadata-firstarif-record-v1, adapter interface (ADAPTER_NAME,ADAPTER_VERSION,collect) passed by explicit path, fail-closed all-or-nothing validation, locked negative contract quoted verbatim inadapters/README.md, embedding slot default disabled, forward-only additive migration rules with backups and exit 2 on downgrade, empty migration registry in v0.1.0.scripts/protean-context/bootstrap.py; explicit--targeton every command;--dry-runand--offlineeverywhere;--namerepeatable and required oninit; ensure-exist rerun semantics; init receipt schemaprotean-context-receipt-v1with hash-scopedremove; exit codes 0 to 6; errors to stderr, summary to stdout, no partial-success zero.build/verify-all.pydocstring is authoritative for the 14 locked steps in order, 300-second timeout per step, fail closed, gate protocol 0/1/2 withSKIPPED: missing <path>counted as NOT PASS;check-post-install.pyfor the composer; one fresh minimal workflow running onlypython3 build/verify-all.py(implementer freedom F4).templates/protean-context/docs/rehoming.mdwith the seven locked sections, the token table,EXAMPLE-marked blocks, one env override,hermes -p {PROFILE_NAME} config set <key> <value>guidance with the comment-strip warning, and backup, upgrade, and removal semantics.v0.1.0(annotated, visible prerelease) and theprotean-kitlock-entry PR follow the ordered gate sequence G-1 to G-5.protean-teamidentifiers PR; the file-store decision resolves the storage question; the fresh workflow resolves the unverified-.githubitem; composer lock hygiene, the handoff contract quirk, and the team manifest drift are out of scope and routed elsewhere.Verification
Commands run on this branch. Outputs pasted verbatim.
Boundary self-check
{HOME},{TARGET},{HERMES_HOME},{PROFILE_NAME}(plus template placeholders).SYNTHETIC TEST DATAmarker.Out of scope for this PR
protean-kitlock entry and generated README rows (separate PR, opens only after G-3 and G-4).protean-teamidentifiers amendment (separate companion PR).