docs(adr): seed ADR home + propose ADR-0001 (CD primitives) and ADR-0002 (auth/secrets) (#167)#177
Merged
Merged
Conversation
…002 (auth/secrets) Introduces docs/adr/ as the home for Architecture Decision Records, with a README that locks the MADR-lite format, status lifecycle, and filename convention. Adds the first two ADRs — both Proposed, dated 2026-05-24 — as the architectural framing for the v13 CD work: - ADR-0001 splits CD primitives into attribute-driven file generators (config that lives in git) vs tasks-driven REST calls (state that lives in an external system's DB), with a sparingly-used hybrid for stable config that lives in an external DB. Validates the split against GitHub Releases/Environments, Octopus, and the RFC #113 deployment agent. - ADR-0002 codifies a shared auth/secret convention across providers: canonical SCREAMING_SNAKE from PascalCase field names, plugins receive resolved values only (never raw stores), [Secret] as the trust marker, and a documented resolution chain (CLI > env var > provider secret > encrypted parameters > Keychain > prompt). Lands as Proposed so review (#167) is where the status flips to Accepted or supersedes either with a follow-up ADR. Per docs/adr/README.md, ADRs are history — corrections happen via new ADRs, not in-place edits. Refs #167
3 tasks
ChrisonSimtian
added a commit
that referenced
this pull request
May 25, 2026
Fixes the branch-protection vs paths-ignore mismatch that left docs-only PRs (e.g. #177) BLOCKED with no status check reporting: - main protection requires `ubuntu-latest` - ubuntu-latest.yml has `paths-ignore: docs/**, .assets/**, **/*.md` - Docs PRs never trigger a check → never satisfy protection The new ubuntu-latest-docs.yml fires on the inverse path set, runs nothing of substance, and reports success under the same `ubuntu-latest` status-check context. Pattern mirrors the existing hand-written release.yml (auto-generation can't quite express it). CI minutes cost: ~30s of a single ubuntu runner per docs PR.
4 tasks
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.
Summary
Seeds
docs/adr/as the home for Architecture Decision Records and lands the first two ADRs that frame the v13 CD work — both Proposed, dated 2026-05-24.docs/adr/README.mdNNNN-kebab-case-title.mdfilename convention, and the rule that ADRs are history (corrections happen via new ADRs, not in-place edits).docs/adr/0001-cd-primitives-attributes-vs-tasks.mddocs/adr/0002-cross-provider-auth-and-secret-conventions.mdSCREAMING_SNAKEfrom PascalCase field names,[Secret]as the trust marker, plugins receive resolved values only (never raw stores), documented resolution chain (CLI > env var > provider secret > encrypted parameters > Keychain > prompt).Status
Both ADRs land as Proposed. This PR's review is the vehicle that promotes them to Accepted (or supersedes either with a follow-up ADR) — per the convention codified in the new
docs/adr/README.md.Review checklist (from #167)
ADR-0001 — the two patterns split
[GitHubEnvironment],[OctopusProject]) capped at stable config, dynamic stuff in tasks — defensible line, or do we need a sharper rule?ADR-0002 — the resolution chain + naming
SCREAMING_SNAKEfrom PascalCase field name — locking this in across all providers?RegisterSensitiveValue/ output scrubber appears to be wired to[Secret]. Needs verification before either ADR can move to Accepted. If missing, follow-up framework PR; if present, ADR should cite the file.CredentialStore— macOS-only today. Non-blocking; surface as a separate issue before plugin authors hit it.[Parameter("custom_name")]) — sufficient for the cases that matter, or do we need provider-side mapping dictionaries?Cross-cutting
Outcome
Test plan
docs/adr/README.mdrenders on GitHub with the index table pointing at the right files.Closes
🤖 Generated with Claude Code