Skip to content

[recipes] Add editorial-policy + weekly auditor recipe#276

Open
HansBohlmann wants to merge 2 commits into
NateBJones-Projects:mainfrom
HansBohlmann:contrib/recipe-editorial-policy
Open

[recipes] Add editorial-policy + weekly auditor recipe#276
HansBohlmann wants to merge 2 commits into
NateBJones-Projects:mainfrom
HansBohlmann:contrib/recipe-editorial-policy

Conversation

@HansBohlmann
Copy link
Copy Markdown

Contribution Type

  • Recipe (/recipes)
  • Schema (/schemas)
  • Dashboard (/dashboards)
  • Integration (/integrations)
  • Skill (/skills)
  • Repo improvement (docs, CI, templates)

What does this do?

A recipes/editorial-policy/ contribution: a 40-rule constitution (editorial-policy.md) that governs every synthesis prompt in an OB1 instance, paired with a weekly Edge Function (auditor/) that audits compliance and posts critical findings to Slack.

Requirements

  • Working Open Brain setup
  • Supabase Edge Functions with pg_cron and pg_net extensions enabled
  • OpenRouter API key (auditor defaults to gpt-4o-mini)
  • Slack workspace with bot token (optional — only needed if you want critical findings posted automatically)

No canonical skills or primitives required.

Checklist

  • I've read CONTRIBUTING.md
  • My contribution has a README.md with prerequisites, step-by-step instructions, and expected outcome
  • My metadata.json has all required fields
  • If my contribution depends on a skill or primitive, I declared it in metadata.json and linked it in the README
  • I tested this on my own Open Brain instance
  • No credentials, API keys, or secrets are included

Why

Most OB1 forks fix prompt drift in scattered prompt strings, so the same failure modes — inflation of thin sources, drift across syntheses, smoothed-over contradictions — keep reappearing under new names. This recipe replaces that pattern with a numbered policy that prompts cite (R3.5, R5.3, R10.2) plus an auditor that enforces compliance. When something drifts, you fix the policy and the rule propagates to every prompt that cites it. When the auditor finds a violation, it cites the rule it broke.

What's included

  • editorial-policy.md — the 40-rule doc, generalised for community adoption (R1.1 and R9.3 are the operator-specific rules to adapt). Versioned changelog shows the trait-fix discipline R10.3 prescribes.
  • auditor/index.ts + auditor/deno.json — Edge Function that runs weekly, returns structured JSON findings, stores them as audit_report thoughts (append-only per R8.1/R8.3), posts to Slack only on severity:critical per low-noise discipline.
  • schema.sqlget_recent_audit_reports RPC + partial index. No new tables.
  • schedule.sql — pg_cron weekly entry with placeholder URL/key.
  • README.md — full setup walkthrough following the _template/ pattern: prerequisites, credential tracker, 7 steps, expected outcome, troubleshooting, customisation.

Adopting

Total setup time: ~30 minutes. The README.md walks through it. Adopters edit R1.1 (operator name), R9.3 (timezone), and update their existing synthesis prompts to start with Follow Open Brain Editorial Policy v{version} per R10.2.

Why a recipe, not a skill or extension

Three things that only deliver value together — a policy doc, an SQL helper, and an Edge Function. The policy without the auditor is documentation that drifts. The auditor without the policy is a function with nothing to check. Recipe pattern fits.

Tested

Running in production on my OB1 instance. The v1.3 changelog entry in the policy doc is a real trait-fix from an actual briefing-inflation incident — a one-line reminder ("X follow up is urgent") got paraphrased into a theme + worth-revisiting reflection + philosophical "prompt for today" across four sections of one morning briefing. Adding R3.5 and rebuilding the synthesis prompts to inherit it fixed it. That's the discipline this recipe encodes.

A 40-rule constitution that governs synthesis prompts plus an Edge
Function that audits compliance weekly. Trait-fix discipline encoded
as a numbered policy + auditor pair, so drift is detectable instead
of scattered across prompt strings.
@github-actions github-actions Bot added the recipe Contribution: step-by-step recipe label May 9, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 9, 2026

Hey @HansBohlmann — welcome to Open Brain Source! 👋

Thanks for submitting your first PR. The automated review will run shortly and check things like metadata, folder structure, and README completeness. If anything needs fixing, the review comment will tell you exactly what.

Once the automated checks pass, a human admin will review for quality and clarity. Expect a response within a few days.

If you have questions, check out CONTRIBUTING.md or open an issue.

@alanshurafa alanshurafa added area: recipes Review area: recipes review: ready-for-maintainer Community reviewer recommends maintainer review alan-reviewed Reviewed by Alan Shurafa in Community Reviewer role labels May 20, 2026
@alanshurafa
Copy link
Copy Markdown
Collaborator

Thanks for the contribution, and welcome. This is a substantial, well-designed recipe — pairing a numbered editorial policy with a weekly compliance auditor is a coherent approach to keeping synthesis output disciplined. Self-contained under recipes/editorial-policy/.

The schema change is light: schema.sql adds one helper RPC and one partial index on the thoughts table — no new tables, no column or structure changes, so it stays within the contribution guard rails. The auditor stores findings as audit_report-type thoughts and posts critical ones to Slack on a weekly pg_cron schedule. Recommend maintainer review.

— Alan (community reviewer; non-binding)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

alan-reviewed Reviewed by Alan Shurafa in Community Reviewer role area: recipes Review area: recipes recipe Contribution: step-by-step recipe review: ready-for-maintainer Community reviewer recommends maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants