docs: public-readiness — vibe-coded disclosure + genericize internal hosts
- 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:
@@ -5,6 +5,12 @@ target-agnostic model access, a parseable model naming / failover / tiering
|
||||
system with health tracking, multimodality, tool calls, structured output,
|
||||
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
|
||||
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
|
||||
|
||||
@@ -5,6 +5,13 @@ over many model providers, a parseable model naming / failover / tiering
|
||||
system with built-in health tracking, capability-aware multimodality, tool
|
||||
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
|
||||
> honest: *pending* means not built, and this README is updated in the
|
||||
> 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):
|
||||
|
||||
```
|
||||
LLM_M1=foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa
|
||||
LLM_M5=foreman://test-token-change-me@foreman-m5.orgrimmar.dudenhoeffer.casa
|
||||
LLM_M1=foreman://test-token-change-me@foreman-m1.example.com
|
||||
LLM_M5=foreman://test-token-change-me@foreman-m5.example.com
|
||||
```
|
||||
|
||||
defines providers `m1` and `m5` (foreman targets — native Ollama wire
|
||||
|
||||
@@ -8,8 +8,8 @@ Steve's deployments define providers via env vars that must keep working
|
||||
unchanged:
|
||||
|
||||
```
|
||||
LLM_M1=foreman://token@foreman-m1.orgrimmar.dudenhoeffer.casa
|
||||
LLM_M5=foreman://token@foreman-m5.orgrimmar.dudenhoeffer.casa
|
||||
LLM_M1=foreman://token@foreman-m1.example.com
|
||||
LLM_M5=foreman://token@foreman-m5.example.com
|
||||
```
|
||||
|
||||
go-llm (v2/parse.go) implements this **lazily only**: `Parse("m5/x")` misses
|
||||
|
||||
+5
-5
@@ -21,8 +21,8 @@ func TestParseDSN(t *testing.T) {
|
||||
wantErr error
|
||||
}{
|
||||
{
|
||||
raw: "foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa",
|
||||
want: DSN{Scheme: "foreman", Token: "test-token-change-me", Host: "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.example.com"},
|
||||
},
|
||||
{
|
||||
raw: "ollama://my-host.example:11434",
|
||||
@@ -66,8 +66,8 @@ func TestDSNBaseURL(t *testing.T) {
|
||||
func TestLoadEnvForeman(t *testing.T) {
|
||||
r := newTestRegistry(t)
|
||||
err := r.LoadEnv(map[string]string{
|
||||
"LLM_M1": "foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa",
|
||||
"LLM_M5": "foreman://test-token-change-me@foreman-m5.orgrimmar.dudenhoeffer.casa",
|
||||
"LLM_M1": "foreman://test-token-change-me@foreman-m1.example.com",
|
||||
"LLM_M5": "foreman://test-token-change-me@foreman-m5.example.com",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("LoadEnv: %v", err)
|
||||
@@ -85,7 +85,7 @@ func TestLoadEnvForeman(t *testing.T) {
|
||||
if 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 {
|
||||
t.Errorf("provider %q baseURL = %q, want %q", name, op.BaseURL(), wantURL)
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
// (go-llm parity): named providers built entirely from the environment,
|
||||
// first-class in Parse, chains, and tiers.
|
||||
//
|
||||
// export LLM_M1=foreman://test-token-change-me@foreman-m1.orgrimmar.dudenhoeffer.casa
|
||||
// export LLM_M5=foreman://test-token-change-me@foreman-m5.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.example.com
|
||||
// go run ./examples/envproviders
|
||||
package main
|
||||
|
||||
|
||||
Reference in New Issue
Block a user