IDKMesh

GitHub Bootstrap Safe Local Apply v0.1

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.

Usage

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.

Refusal and recovery

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.

Testing

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.