ADR 0003: org-level config lives in <org>/.fullsend repo - #80
Conversation
Establishes the convention that adopting organizations create a .fullsend repo as the single entry point for all fullsend configuration. This repo holds pointers to intent and architecture repos, agent runtime defaults, infrastructure and sandbox config, workflow overrides, org-specific agent definitions and skills, per-repo overrides, and org-wide guardrails. The ADR evaluates seven options including non-git alternatives (external config stores, forge-native settings, hosted SaaS) and explains why version-controlled, CODEOWNERS-governed configuration in a conventional repo is the right fit. The convention is forge-agnostic — works for GitHub orgs, GitLab groups, and Forgejo orgs. Updates docs/architecture.md to reference the .fullsend repo as the configuration home for six components: Agent Infrastructure, Agent Sandbox, Agent Harness, Policy Store, Intent Source, and Agent Registry. Closes several open questions that this decision answers. Relates to #75. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review Summary by QodoADR 0003: Establish org-level config in .fullsend repo convention
WalkthroughsDescription• Establishes ADR 0003 defining <org>/.fullsend repo convention for org-level configuration • Evaluates seven alternatives (external stores, forge-native settings, SaaS) and justifies git-based approach • Updates docs/architecture.md to reference .fullsend repo as configuration home for six components • Removes open questions answered by the ADR decision (policy location, registry formality, harness per-role) Diagramflowchart LR
A["Adopting Org"] -->|creates| B["<org>/.fullsend repo"]
B -->|contains| C["config.yaml"]
B -->|contains| D["agents/ skills/ workflows/"]
B -->|contains| E["repos/ per-repo overrides"]
C -->|points to| F["intent_repo"]
C -->|points to| G["architecture_repo"]
C -->|defines| H["runtime defaults"]
C -->|defines| I["infrastructure config"]
B -->|governs| J["Agent Harness"]
B -->|governs| K["Policy Store"]
B -->|governs| L["Agent Registry"]
M["fullsend defaults"] -->|layered with| B
B -->|layered with| E
File Changes1. docs/ADRs/0003-org-config-repo-convention.md
|
Code Review by Qodo
1.
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
waynesun09
left a comment
There was a problem hiding this comment.
Nice ADR — thorough options analysis with principled rejection of non-git alternatives. A few items to consider:
Should Address Before Merge
| Issue | Detail |
|---|---|
| CODEOWNERS on YAML sections | ADR says "CODEOWNERS on the guardrails section of config" but CODEOWNERS operates on file paths, not YAML sections. Suggest separate guardrails.yaml file |
| Agent modification enforcement | Specify how "agents cannot modify this repo" is enforced (bot exclusion from write access + CODEOWNERS) |
| Secrets management clarity | Add note that .fullsend contains structural config only; secrets (API keys, credentials) are managed separately |
| Schema versioning | Add version: field to config.yaml example for future schema evolution |
| Status field | Should this be "Accepted" upon merge, or remain "Proposed" pending community review? |
Nice-to-Have Suggestions
| Suggestion |
|---|
| Add per-repo-only config as an explicitly rejected alternative (Option 8) |
| Add migration path consequence for existing adopters |
Clarify runtime.default vs runtime.model — redundant keys in YAML example |
Replace .editorconfig (a file) with .gitlab (a repo) as dot-prefix precedent example |
| Add config discovery algorithm pseudo-code for tooling |
Note that .fullsend should have the most restrictive branch protection in the org |
| Add per-repo override discovery mechanism sentence |
| Clarify forge-agnosticism: "platforms that support org/group-level repositories" |
| Multi-org hierarchy scenarios (large companies with sub-groups) — flag as future work |
…larity - Separate guardrails into dedicated `guardrails.yaml` so CODEOWNERS can gate changes (CODEOWNERS operates on file paths, not YAML sections) - Clarify agent modification enforcement: bot exclusion + CODEOWNERS - Add secrets management note (structural config only, not secrets) - Add `version: 1` schema version field to config example - Rename `runtime.default` to `runtime.harness` to avoid redundancy - Replace `.editorconfig` (a file) with `.gitlab` (a repo) as precedent - Call out guardrail override gap as explicit limitation and consequence - Filed #84 to track guardrail protection mechanism design Resolves review feedback from waynesun09 and ralphbean on PR #80. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
rh-hemartin
left a comment
There was a problem hiding this comment.
I think credential management will have its own ADR in the future, so I'm fine with this.
|
I created empty repos at https://github.com/fullsend-ai/.fullsend and https://github.com/nonflux/.fullsend |
Now that fullsend-ai/fullsend#80 and #81 have merged, we can point at authoritative sources for the base-composition merge behavior and the CI workflow env: block boundary, instead of asserting them unverified. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
Now that fullsend-ai/fullsend#80 and #81 have merged, we can point at authoritative sources for the base-composition merge behavior and the CI workflow env: block boundary, instead of asserting them unverified. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
Now that fullsend-ai/fullsend#80 and fullsend-ai#81 have merged, we can point at authoritative sources for the base-composition merge behavior and the CI workflow env: block boundary, instead of asserting them unverified. Assisted-by: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Ralph Bean <rbean@redhat.com>
Summary
<org>/.fullsendrepo as the single entry point for all fullsend configuration — pointers to intent/architecture repos, agent runtime defaults, infrastructure/sandbox config, workflow overrides, org-specific agents and skills, per-repo overrides, and org-wide guardrails.docs/architecture.mdto reference the.fullsendrepo as the configuration home for six components (Agent Infrastructure, Agent Sandbox, Agent Harness, Policy Store, Intent Source, Agent Registry), closing several previously-open questions.Relates to #75.
Test plan
docs/ADRs/0000-adr-template.mdrelates_toentries match existing problem doc filenames🤖 Generated with Claude Code