docs: public-readiness — vibe-coded disclosure + genericize internal hosts
CI / Tidy (push) Successful in 9m39s
CI / Build & Test (push) Successful in 10m21s

- README + CLAUDE.md: upfront "this is a vibe-coded project" disclosure for
  going public.
- Replace internal LAN hostnames (*.orgrimmar.dudenhoeffer.casa) with
  example.com across README, ADR-0004, the envproviders example, and env_test.go
  (assertions updated together; suite still green). Token was already a
  "change-me" placeholder, not a real secret.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Steve Dudenhoeffer
2026-06-25 19:25:58 -04:00
parent 1029feb0c7
commit 3e81fbd540
5 changed files with 24 additions and 11 deletions
+6
View File
@@ -5,6 +5,12 @@ target-agnostic model access, a parseable model naming / failover / tiering
system with health tracking, multimodality, tool calls, structured output, system with health tracking, multimodality, tool calls, structured output,
and agents composed from model + system prompt + toolboxes + skills. and agents composed from model + system prompt + toolboxes + skills.
> **Public, vibe-coded project.** This is built almost entirely by an AI agent
> (Claude Code) and is public. Keep that framing honest in the README — don't
> oversell it — and keep the README/support-matrix/examples updated in the same
> commit as the behavior they describe (that in-sync promise is part of the
> project's credibility).
**North star:** majordomo exists to re-architect mort's agentic layer. mort **North star:** majordomo exists to re-architect mort's agentic layer. mort
is the first consumer and the design's acceptance test — when a choice is a is the first consumer and the design's acceptance test — when a choice is a
toss-up, pick what makes mort's tiers, failover chains, toolboxes, and toss-up, pick what makes mort's tiers, failover chains, toolboxes, and
+9 -2
View File
@@ -5,6 +5,13 @@ over many model providers, a parseable model naming / failover / tiering
system with built-in health tracking, capability-aware multimodality, tool system with built-in health tracking, capability-aware multimodality, tool
calls, structured output, and composable agents and skills. calls, structured output, and composable agents and skills.
> ### 🤖 Heads up: this is a vibe-coded project
> majordomo was built almost entirely by an AI agent (Claude Code) — design,
> code, and docs. It is reasonably well-tested (a fully hermetic suite plus
> gated live integration tests) and is used in earnest, but treat it
> accordingly: read the code before depending on it, expect the occasional
> AI-flavored rough edge, and please open issues. No warranty implied.
> The [support matrix](#featureprovider-support-matrix) below is kept > The [support matrix](#featureprovider-support-matrix) below is kept
> honest: *pending* means not built, and this README is updated in the > honest: *pending* means not built, and this README is updated in the
> same commit as the behavior it describes. Runnable programs for every > same commit as the behavior it describes. Runnable programs for every
@@ -138,8 +145,8 @@ reg.RegisterProvider(openai.New(
Define named providers entirely from the environment (go-llm parity): Define named providers entirely from the environment (go-llm parity):
``` ```
LLM_M1=foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa LLM_M1=foreman://test-token-change-me@foreman-m1.example.com
LLM_M5=foreman://test-token-change-me@foreman-m5.orgrimmar.dudenhoeffer.casa LLM_M5=foreman://test-token-change-me@foreman-m5.example.com
``` ```
defines providers `m1` and `m5` (foreman targets — native Ollama wire defines providers `m1` and `m5` (foreman targets — native Ollama wire
+2 -2
View File
@@ -8,8 +8,8 @@ Steve's deployments define providers via env vars that must keep working
unchanged: unchanged:
``` ```
LLM_M1=foreman://token@foreman-m1.orgrimmar.dudenhoeffer.casa LLM_M1=foreman://token@foreman-m1.example.com
LLM_M5=foreman://token@foreman-m5.orgrimmar.dudenhoeffer.casa LLM_M5=foreman://token@foreman-m5.example.com
``` ```
go-llm (v2/parse.go) implements this **lazily only**: `Parse("m5/x")` misses go-llm (v2/parse.go) implements this **lazily only**: `Parse("m5/x")` misses
+5 -5
View File
@@ -21,8 +21,8 @@ func TestParseDSN(t *testing.T) {
wantErr error wantErr error
}{ }{
{ {
raw: "foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa", raw: "foreman://test-token-change-me@foreman-m1.example.com",
want: DSN{Scheme: "foreman", Token: "test-token-change-me", Host: "foreman-m1.orgrimmar.dudenhoeffer.casa"}, want: DSN{Scheme: "foreman", Token: "test-token-change-me", Host: "foreman-m1.example.com"},
}, },
{ {
raw: "ollama://my-host.example:11434", raw: "ollama://my-host.example:11434",
@@ -66,8 +66,8 @@ func TestDSNBaseURL(t *testing.T) {
func TestLoadEnvForeman(t *testing.T) { func TestLoadEnvForeman(t *testing.T) {
r := newTestRegistry(t) r := newTestRegistry(t)
err := r.LoadEnv(map[string]string{ err := r.LoadEnv(map[string]string{
"LLM_M1": "foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa", "LLM_M1": "foreman://test-token-change-me@foreman-m1.example.com",
"LLM_M5": "foreman://test-token-change-me@foreman-m5.orgrimmar.dudenhoeffer.casa", "LLM_M5": "foreman://test-token-change-me@foreman-m5.example.com",
}) })
if err != nil { if err != nil {
t.Fatalf("LoadEnv: %v", err) t.Fatalf("LoadEnv: %v", err)
@@ -85,7 +85,7 @@ func TestLoadEnvForeman(t *testing.T) {
if op.Name() != name { if op.Name() != name {
t.Errorf("provider name = %q, want %q", op.Name(), name) t.Errorf("provider name = %q, want %q", op.Name(), name)
} }
wantURL := "https://foreman-" + name + ".orgrimmar.dudenhoeffer.casa" wantURL := "https://foreman-" + name + ".example.com"
if op.BaseURL() != wantURL { if op.BaseURL() != wantURL {
t.Errorf("provider %q baseURL = %q, want %q", name, op.BaseURL(), wantURL) t.Errorf("provider %q baseURL = %q, want %q", name, op.BaseURL(), wantURL)
} }
+2 -2
View File
@@ -2,8 +2,8 @@
// (go-llm parity): named providers built entirely from the environment, // (go-llm parity): named providers built entirely from the environment,
// first-class in Parse, chains, and tiers. // first-class in Parse, chains, and tiers.
// //
// export LLM_M1=foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa // export LLM_M1=foreman://test-token-change-me@foreman-m1.example.com
// export LLM_M5=foreman://test-token-change-me@foreman-m5.orgrimmar.dudenhoeffer.casa // export LLM_M5=foreman://test-token-change-me@foreman-m5.example.com
// go run ./examples/envproviders // go run ./examples/envproviders
package main package main