DCO (Developer Certificate of Origin):
Standard DCO 1.1 (Linux kernel, CNCF, Kubernetes standard)
Contributors retain copyright — no rights assignment
NOTICE:
Copyright attribution (Guildhouse LLC)
Contributors retain copyright, own their implementations
SessionHandler/AuthProvider as public API boundary
Tribal jurisdiction for voluntary dispute resolution
GOVERNANCE.md:
Project governance model and decision making
IP framework: Guildhouse brand vs contributor code vs shared Apache 2.0
SessionHandler trait IS the product boundary
Tribal dispute resolution: voluntary, technically informed
Tribal partnership mission
CI:
DCO sign-off check on pull requests
Existing commits on main exempt
README + CONTRIBUTING:
Governance section, DCO instructions, corporate guidance
Signed-off-by: Tyler King <tking@guildhouse.dev>
New crate: bascule-shell (471 lines, 1.8MB binary)
Login shell that detects identity + platform attestation at startup.
Wraps bash/zsh/fish — operator works normally, identity travels with them.
Identity detection (priority order):
1. Entra via WSL2 interop
2. Azure CLI
3. Kerberos TGT
4. Cached OIDC token
5. System user (fallback)
Platform attestation:
TPM 2.0 PCR values via tpm2_pcrread (PCRs 0,1,2,7,10,14)
IMA measurement log hash + count
Keylime agent state
Entra device compliance (WSL2 only)
Composite SHA-256 hash over all evidence
Shell features:
Banner with identity + attestation summary
BASCULE_* env vars injected into inner shell
--info mode for dry-run display
--json mode for machine-readable output
--exec mode for single-command execution
Configurable via ~/.config/bascule/shell.toml
Tested on Fedora with real TPM 2.0:
6 PCRs successfully read from hardware
All env vars propagated to inner shell
1.8MB binary, 0 substrate deps
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>