Status: experimental implementation, C8-F of #596. POSIX-only, local repository writes. No network, GitHub API, secret-value access, provider dispatch, verification, approval, push, or merge.
From the root of an initialized Git repository, use a pinned IDKMesh release or a full lowercase commit SHA:
idkmesh init --github --dry-run --idkmesh-ref v0.1.0
idkmesh init --github --idkmesh-ref v0.1.0 --apply
The first command is a pure renderer. To inspect real target-file conflicts without modifying the repository, use --check instead of --apply. --apply explicitly opts in to local installation; the command never edits GitHub repository settings. --json emits a bounded, deterministic action report.
C8-F uses the canonical C8-A/C/D eight-file inventory: two user_seed files (project.json, connections.json) and six idkmesh_managed files. User seeds are create-if-absent, never overwritten on rerun. Managed files may change only if their on-disk SHA-256 equals their previously retained generated digest.
The generated .idkmesh/bootstrap-state.json stores the six last-rendered managed-file digests and plan metadata; a self-digest detects accidental corruption but does not authenticate state against a malicious same-user writer. Commit this state alongside generated files. Its identity is deliberately outside the eight application files.
git diff and keep the branch protected.The canonical bootstrap renderer validates metadata and SHA-256 digests before local writes; no untrusted external workflow is executed by bootstrap. Rendered GitHub workflow dispatch and verify runner phases still fail closed; owner setup and external-project validation are separate remaining work.
python -m pytest -q tests/test_github_bootstrap_apply.py checks first install, no-op replay, changed seed preservation, managed-file conflict refusal, reference upgrade, state corruption and symlink refusal.