Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .github/workflows/anthropic-monthly-synthesis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: anthropic-intelligence — monthly synthesis

on:
schedule:
# 1st of every month at 06:00 UTC
- cron: '0 6 1 * *'
workflow_dispatch:
inputs:
topic:
description: 'Single topic slug to re-synthesize (empty = all)'
required: false
default: ''

permissions:
contents: write
pull-requests: write

concurrency:
group: anthropic-monthly-synthesis
cancel-in-progress: false

jobs:
synthesize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip
cache-dependency-path: anthropic-intelligence/scripts/requirements.txt

- name: Install dependencies
run: pip install -r anthropic-intelligence/scripts/requirements.txt

- name: Run synthesizer
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
ANTHROPIC_MODEL: ${{ vars.ANTHROPIC_MODEL || 'claude-opus-4-7' }}
TOPIC: ${{ github.event.inputs.topic }}
run: |
if [ -z "$ANTHROPIC_API_KEY" ]; then
echo "::error::ANTHROPIC_API_KEY secret not set. Add it under repo Settings > Secrets."
exit 1
fi
cd anthropic-intelligence
python scripts/synthesize.py \
--logs-dir monitoring/logs \
--topics-dir topics \
--sources sources.yaml \
${TOPIC:+--topic "$TOPIC"}

- name: Create pull request
uses: peter-evans/create-pull-request@v6
with:
branch: anthropic-intel/monthly-synthesis-${{ github.run_id }}
base: main
commit-message: 'docs(anthropic-intel): monthly synthesis'
title: '[anthropic-intel] Monthly synthesis: topic updates'
body: |
Automated monthly synthesis. Reviews `topics/*.md` against the last
four weekly logs and proposes updates.

Please review each topic change individually and verify any new
claims against the linked sources before merging.
labels: anthropic-intel,automation,needs-review
add-paths: |
anthropic-intelligence/topics/**
anthropic-intelligence/engineers/**
64 changes: 64 additions & 0 deletions .github/workflows/anthropic-weekly-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: anthropic-intelligence — weekly scan

on:
schedule:
# Every Monday at 06:00 UTC
- cron: '0 6 * * 1'
workflow_dispatch:
inputs:
priority:
description: 'Min priority to scan (P0/P1/P2)'
required: false
default: 'P2'

permissions:
contents: write
pull-requests: write

concurrency:
group: anthropic-weekly-scan
cancel-in-progress: false

jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip
cache-dependency-path: anthropic-intelligence/scripts/requirements.txt

- name: Install dependencies
run: pip install -r anthropic-intelligence/scripts/requirements.txt

- name: Run scanner
env:
PRIORITY: ${{ github.event.inputs.priority || 'P2' }}
run: |
cd anthropic-intelligence
WEEK=$(date -u +%Y-%V)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use ISO week-year for weekly log filenames

The scanner names logs with date -u +%Y-%V, which mixes calendar year (%Y) with ISO week number (%V). On Mondays at year boundaries (for example, 2024-12-30 is ISO week 2025-01), this produces 2024-01 and can overwrite an earlier 2024-01.md log from January, causing data loss and breaking chronological ordering for monthly synthesis.

Useful? React with 👍 / 👎.

python scripts/fetch_sources.py \
--sources sources.yaml \
--state monitoring/state.json \
--output monitoring/logs/${WEEK}.md \
--min-priority "$PRIORITY"

- name: Create pull request
uses: peter-evans/create-pull-request@v6
with:
branch: anthropic-intel/weekly-scan-${{ github.run_id }}
base: main
commit-message: 'chore(anthropic-intel): weekly scan'
title: '[anthropic-intel] Weekly scan: new signals'
body: |
Automated weekly scan of Anthropic + Claude Code sources.

Review the new log under `anthropic-intelligence/monitoring/logs/`
and skim for anything worth promoting into a topic article.
labels: anthropic-intel,automation
add-paths: |
anthropic-intelligence/monitoring/logs/**
anthropic-intelligence/monitoring/state.json
29 changes: 29 additions & 0 deletions anthropic-intelligence/CADENCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Update Cadence

## Recommended rhythm

| Frequency | What | Trigger | Output |
|---|---|---|---|
| Daily | nothing automatic | — | manual only, on demand |
| **Weekly (Mon 06:00 UTC)** | Source scan | `.github/workflows/anthropic-weekly-scan.yml` cron | `monitoring/logs/YYYY-WW.md` + PR |
| **Monthly (1st 06:00 UTC)** | Topic synthesis | `.github/workflows/anthropic-monthly-synthesis.yml` cron | Updates to `topics/*.md` + PR |
| Ad-hoc | Major release (new Claude model, Claude Code major) | Manual | Hand-crafted topic update |

## Why this cadence

- **Daily**: too noisy. Anthropic does not publish that often. Would create alert fatigue and PR spam.
- **Weekly**: sweet spot for catching blog posts, Simon Willison's weeknotes, Boris Cherny / Thariq Shihipar tweets, Claude Code minor releases. One human review per week max.
- **Monthly**: enough buffer for 3–4 weekly logs to accumulate before re-synthesizing topic articles. Avoids constant article churn and merge conflicts.
- **Ad-hoc**: model launches and Claude Code major versions warrant immediate, deeper treatment than the standard pipeline can deliver.

## Source priority tiers

Sources in `sources.yaml` carry a `priority` field:

- **P0** — must-check every scan (Anthropic blog, Claude Code releases, docs changelog)
- **P1** — weekly check (employee blogs, Simon Willison, key X accounts, model cards)
- **P2** — monthly check (community Reddit, broader news aggregation)

## Tuning the cadence

If weekly PRs feel too noisy, drop P2 sources from the weekly scan and only include them in the monthly synthesis. If a topic is hot (e.g. a model release week), temporarily bump cadence to twice weekly via `workflow_dispatch`.
51 changes: 51 additions & 0 deletions anthropic-intelligence/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Anthropic Intelligence

Living knowledge base on Anthropic, Claude Code, and AI engineering best practices.

## Why this exists

Information from Anthropic ships fast: blog posts, model cards, Claude Code release
notes, engineering employees on X / personal blogs, Reddit threads, conference talks.
Most of it never reaches our internal systems. This repo (subtree) closes that gap:

- **Continuous monitoring** of curated sources via GitHub Actions cron
- **Weekly diff logs** of what changed in the Anthropic ecosystem
- **Monthly synthesis** of logs into topic-level KB articles
- **Engineer profiles** so we know whose ideas we're tracking

## Layout

| Path | Purpose |
|---|---|
| `topics/` | Synthesized, versioned KB articles per topic (HTML output, caching, tool use, agents, hooks, etc.) |
| `engineers/` | Profiles of key Anthropic engineers (Boris Cherny, Erik Schluntz, Sholto Douglas, Cat Wu, Thariq Shihipar) and external voices (Simon Willison) |
| `sources.yaml` | Registry of feeds, blogs, GitHub repos, X handles being watched |
| `monitoring/logs/` | Auto-generated weekly diff logs from scanner |
| `scripts/` | Python: source fetcher + monthly synthesizer |
| `../.github/workflows/anthropic-*.yml` | Cron workflows (weekly scan, monthly synthesis) |

## Cadence (recommended)

- **Weekly (Monday 06:00 UTC)** — scanner fetches all sources, writes diff log, opens PR
- **Monthly (1st of month, 06:00 UTC)** — synthesizer aggregates 4 weeks of logs, updates topic articles, opens PR
- **Ad-hoc** — major releases (Claude model launches, Claude Code major versions)

See `CADENCE.md` for rationale.

## Extracting to a standalone repo (future)

This lives as a subtree because the standalone `klangschalen/anthropic-intelligence`
repo could not be created from the current integration scope (403 from GitHub API).
To extract later:

```bash
git subtree split --prefix=anthropic-intelligence -b anthropic-intelligence-export
# create the standalone repo manually on github.com, then:
git push git@github.com:klangschalen/anthropic-intelligence.git anthropic-intelligence-export:main
```

## First artifact

`topics/output-formats-html-vs-markdown.md` — deep research into the May 2026
shift toward HTML as default Claude output format, with concrete recommendations
for our prompts and agents.
Loading