Skip to content

docs(credentials): operator config scaffolding for push/Stripe/SMTP/local-LLM tiers#11

Draft
milos85vasic wants to merge 1 commit into
mainfrom
docs/feature-tier-credential-setup
Draft

docs(credentials): operator config scaffolding for push/Stripe/SMTP/local-LLM tiers#11
milos85vasic wants to merge 1 commit into
mainfrom
docs/feature-tier-credential-setup

Conversation

@milos85vasic

Copy link
Copy Markdown
Contributor

Summary

  • Adds docs/credentials/FEATURE_TIER_SETUP.md — a per-tier operator checklist (exact env var, secret file/path, activation signal cited from real code, honest default when unset) for the feature tiers main already implements: FCM/APNs push (notification-service), Stripe payments (billing-service), SMTP email (notification-service), and the local LLM client (ai-service).
  • Appends REDACTED placeholder slots, grouped by tier, to infrastructure/docker/compose/.env.example.
  • Broadens .gitignore: .env.env + .env.* with !.env.example negation, adds *.p8/*.p12 (APNs auth key formats), and a new scripts/testing/secrets/ scaffold (tracked README.md + .gitkeep, real secrets ignored).
  • Docs/config only — no Go changes. None of the already-implemented push/Stripe/SMTP/local-LLM code was touched, reimplemented, or stubbed.

Honest finding

ai-service's cloud-LLM tier (OpenAI/Anthropic) is not implementedmain.go and llmclient.go say so explicitly ("OPERATOR-BLOCKED and deliberately not wired"), and a repo-wide grep for OPENAI_API_KEY / ANTHROPIC_API_KEY found no matches. No env var was invented for it; the doc states this plainly instead of fabricating config for code that doesn't exist.

Verification performed

  • Every documented env var traced to its real os.Getenv call (file:line cited in the doc).
  • git check-ignore --stdin run against all 1938 tracked files — zero collisions with the new ignore patterns.
  • git ls-files infrastructure/docker/compose/.env.example confirms it stays tracked.
  • bash tests/verify_constitution_inheritance.sh — PASS (all 5 invariants).

Test plan

  • Reviewer confirms each cited file:line matches the real os.Getenv call in main.
  • Reviewer confirms no Go source was modified (git diff main...docs/feature-tier-credential-setup -- '*.go' is empty).
  • Operator dry-runs the Push/Stripe/SMTP setup steps against a real credential to confirm the cited activation signal (log line or status field) matches.

🤖 Generated with Claude Code

https://claude.ai/code/session_015JCrM28hes4SXfJ1cSubJL

…ocal-LLM tiers

Adds docs/credentials/FEATURE_TIER_SETUP.md — a per-tier operator
checklist (env var, secret file/path, activation signal cited from real
code, honest default when unset) for the four feature tiers main already
implements: FCM/APNs push (notification-service), Stripe payments
(billing-service), SMTP email (notification-service), and the local LLM
client (ai-service). Every variable is verified against the real
os.Getenv call that reads it (file:line cited) — no re-implementation,
no stubs, docs/config only.

Also: appends REDACTED placeholder slots grouped by tier to
infrastructure/docker/compose/.env.example; broadens .gitignore to
`.env.*` (with `!.env.example` negation), `*.p8`/`*.p12` (APNs auth
keys), and a new `scripts/testing/secrets/` scaffold (tracked README +
.gitkeep, real secrets ignored) — verified via `git check-ignore
--stdin` against every tracked file (no collisions) and `git ls-files`
(.env.example stays tracked).

Honest finding (Constitution §11.4.6 no-guessing): ai-service's
cloud-LLM tier (OpenAI/Anthropic) is NOT implemented — main.go and
llmclient.go say so explicitly ("OPERATOR-BLOCKED and deliberately not
wired"), confirmed by a repo-wide grep for OPENAI_API_KEY /
ANTHROPIC_API_KEY finding no matches. No variable is invented for it;
the doc states this plainly instead.

Classification: project-specific (§11.4.17) — references this repo's
concrete service layout, env var names, and file paths.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015JCrM28hes4SXfJ1cSubJL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant