Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
21cc827
face-lift: README restructure, conventions, ledger, check-knowledge h…
claude Sep 27, 2026
0faaee8
harness: detect duplicate day sections, shape-check lessons/ files, f…
claude Sep 27, 2026
f25beab
harness: fail on missing lessons/, malformed bullets, bad confidence,…
claude Sep 27, 2026
868c3d1
harness: content-level comparison, strict fields, exact H1, no stray …
claude Sep 27, 2026
d178e69
harness: reject non-date H2 headings; coverage counts readable files …
claude Sep 27, 2026
67c1841
harness: any list marker is a lesson candidate, bare ## rejected, ver…
claude Sep 27, 2026
c27bc35
harness: HTML comments never count as content; duplicate lesson field…
claude Sep 27, 2026
6470c4f
harness: fenced code never counts; sanitized day-file scans; every di…
claude Sep 27, 2026
63c6ad4
harness: label-first field parsing, single-pass fence/comment sanitiz…
claude Sep 27, 2026
6e845a6
harness: CommonMark indentation for H2s/bullets (nesting relative to …
claude Sep 27, 2026
8f0a55c
harness: continuation lines compared, empty list items malformed, cod…
claude Sep 27, 2026
a0b4600
harness: round-11 review fixes (fence info strings, lazy continuation…
claude Sep 27, 2026
01d0cca
harness: round-12 review fixes (fences nested in list items, block bo…
claude Sep 27, 2026
8560014
harness: round-13 review fix (a fenced block is a block boundary the …
claude Sep 27, 2026
37f565d
harness: round-14 review fixes (comment blocks, thematic breaks, sent…
claude Sep 27, 2026
a8cb85f
harness: round-15 review fixes (nested date headings, HTML blocks, 9-…
claude Sep 27, 2026
88dfe27
harness: round-16 review fixes (symlinked knowledge.md, code-span whi…
claude Sep 27, 2026
73790a6
harness: round-17 review fixes (strong flanking, UTF-8 BOM, comment-s…
claude Sep 27, 2026
568a411
harness: round-18 review fixes (escaped closers, escaped backticks, a…
claude Sep 27, 2026
3c4d616
harness: round-19 review fixes (ten CommonMark edge cases in sanitize…
claude Sep 27, 2026
3c21aab
harness: round-20 review fixes (inline comments end with the paragrap…
claude Sep 27, 2026
0eac91d
harness: round-21 review fixes (validated reference definitions, Sete…
claude Sep 27, 2026
5319f30
verified: correct session surface — chat/Cowork tab, not Code tab (v2…
claude Sep 27, 2026
320a5cc
harness: round-22 review fixes (indented code, nested Setext/ATX H2s,…
claude Sep 27, 2026
e7edf49
harness: round-23 review fixes (CommonMark whitespace, ref-def destin…
claude Sep 27, 2026
0446523
harness: round-24 review fixes (NBSP before comments, escaped openers…
claude Sep 27, 2026
03bb96e
harness: round-25 review fixes (unmatched backtick runs, fence indent…
claude Sep 27, 2026
a0fa435
harness: round-26 review fixes (single normalisation pass, HTML opene…
claude Sep 27, 2026
4593c52
harness: round-27 review fixes (comment-block tails, blocks opening a…
claude Sep 27, 2026
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
16 changes: 16 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## What changed

<!-- one paragraph, plain words; say whether any connector-managed file was touched -->

## How it was verified

<!-- paste `python3 harness/check-knowledge.py` and markdownlint output -->

```text
```

## Where the risk lives

## Ledger

- [ ] Row added to `LEDGER.md`
31 changes: 31 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Lint

on:
push:
branches: [main]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Run CI on the feature-branch pushes promised by the README

When a contributor pushes a claude/<topic> branch before opening its pull request, this branch filter prevents the workflow from running, although the README states that the harness and markdownlint run on every push. That removes the promised pre-PR signal for the repository's documented contribution flow; either allow pushes on all branches or narrow the README claim to pushes to main.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed in the next push (commit pending): README narrowed to what the workflow does: 'on every pull request and on every push to main', with a line to run the harness locally before pushing a branch.


Generated by Claude Code

pull_request:
workflow_dispatch: {}

permissions:
contents: read

jobs:
markdown:
name: markdownlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npx --yes markdownlint-cli2@0.23.3 "**/*.md" "#node_modules"

knowledge:
name: check-knowledge.py
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python3 harness/check-knowledge.py
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Secrets and local config — never commit
.env
.env.*
*.pem
*.key
secrets/

# OS and editor noise
.DS_Store
Thumbs.db
*.swp
*~
.idea/
.vscode/

# Toolchains
node_modules/
__pycache__/
*.pyc
.venv/

# Harness output (paste into the PR, do not commit)
harness/out/
*.log
8 changes: 8 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# markdownlint-cli2 config. Kept lenient where GitHub renders fine.
default: true
MD013: false # line length — tables and URLs make this noise
MD033: # inline HTML: allow the few tags GitHub renders
allowed_elements: [br, details, summary, img, sub, sup]
MD041: false # first line need not be an H1 (badges, templates)
MD024:
siblings_only: true # duplicate headings allowed in different sections
43 changes: 43 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Conventions

Two kinds of writer share this repository: the daily-dev-agentic connector,
which appends lessons on a schedule, and Claude sessions or humans, who add
verified fact sheets and fix things. These rules keep them from colliding.

## What the connector owns

- `knowledge.md` and `lessons/*.md` are connector-managed. Edit them only to
fix a factual or formatting error in an existing lesson; do not add lessons
by hand (they would not carry a seen-post watermark and could be duplicated
on the next run).
- The connector commits straight to `main`. Do not move these files, rename
the H1, or change the `## YYYY-MM-DD` section format; the connector and
`harness/check-knowledge.py` both depend on it.

## What sessions and humans own

- `verified/YYYY-MM-DD_topic_vN.md`: a fact sheet proven in a session with
tool output, not read in an article. Start with an H1, say where the
evidence came from, mark anything unverified as such. A revision is a new
`vN`, never an overwrite.
- `README.md`, `CONTRIBUTING.md`, `LEDGER.md`, `harness/`, `.github/`.

## Branches and pull requests

- Hand or session changes go on `claude/<topic>` and land through a pull
request. Connector commits are the one exception.
- The PR body says what changed, pastes the `check-knowledge.py` result, and
names the risk.
- Merge only on green CI.

## Ledger

Every hand or session change adds one row to `LEDGER.md` (newest first).
Connector runs are not logged there; their trail is the git history of
`knowledge.md`.

## Lint

`.markdownlint.yml` is lenient on purpose (no line-length rule, inline HTML
allowed) so connector output passes unchanged. Run
`npx markdownlint-cli2@0.23.3 "**/*.md"` (the version CI pins) before opening a PR.
15 changes: 15 additions & 0 deletions LEDGER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Ledger

One row per hand-made or session-made change. Newest first. Connector runs are
not logged here; `git log -- knowledge.md` is their trail.

Columns: **Date** is UTC. **Session** is the claude.ai/code link or `hand`.
**Outcome** is one of `merged`, `closed`, `open`, `direct` (committed to main).
**Evidence** is the commit, PR, or harness result that proves it.

| Date | Session | Branch | PR | Outcome | Evidence |
| --- | --- | --- | --- | --- | --- |
| 2026-09-27 | [session_01T7N2VsxDrRZPwWM7zdFnuK](https://claude.ai/code/session_01T7N2VsxDrRZPwWM7zdFnuK) | `claude/face-lift-v1` | #1 | open | correction: `verified/2026-09-26_claude-surfaces_v2.md` (session ran in the chat/Cowork tab, not the Code tab — T's correction 2026-09-27); v1 banner-marked superseded |
| 2026-09-27 | [session_01T7N2VsxDrRZPwWM7zdFnuK](https://claude.ai/code/session_01T7N2VsxDrRZPwWM7zdFnuK) | `claude/face-lift-v1` | #1 | open | README restructure, CONTRIBUTING, ledger, `harness/check-knowledge.py` (RESULT: PASS — 12 pass, 0 warn, 0 fail after review fixes), lint CI, description + topics set via `gh` on the linked PC; follow-up pushes fix 3 Sourcery + 129 Codex findings, 1 pushed back with evidence (27 rounds; rounds 22-25 also rewrote 14 earlier suite cases whose vehicle or CommonMark reading no longer held, each checked against commonmark.js 0.31.2 or by mutation) |
| 2026-09-26 | [session_01T7N2VsxDrRZPwWM7zdFnuK](https://claude.ai/code/session_01T7N2VsxDrRZPwWM7zdFnuK) | `main` | — | direct | commit `ef0c3ac`: `verified/2026-09-26_claude-surfaces_v1.md` |
| 2026-08-24 | Cowork session | `main` | — | direct | commits `27aa529`…`0763bf4`: repo bootstrap, first 5 lessons (`cfd032a`), README |
70 changes: 65 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,69 @@
# agent-knowledge

The readable memory of T's daily-dev-agentic loop. Written by the daily.dev MCP connector (Cloudflare Worker `dailydevplugd`).
[![Lint](https://github.com/lookathim010-source/agent-knowledge/actions/workflows/lint.yml/badge.svg)](https://github.com/lookathim010-source/agent-knowledge/actions/workflows/lint.yml)
![License: MIT](https://img.shields.io/badge/license-MIT-green)
![Written by: daily-dev-agentic connector](https://img.shields.io/badge/written%20by-daily--dev--agentic%20connector-blue)
![Lessons carry a confidence score](https://img.shields.io/badge/lessons-confidence--scored-orange)

- `knowledge.md` — all lessons, newest day first; every lesson links its daily.dev source post.
- `lessons/YYYY-MM-DD.md` — the same lessons as one file per day.
- `verified/YYYY-MM-DD_topic_vN.md` — session-verified fact sheets written by Claude sessions (not daily.dev lessons); hand-maintained.
The readable memory of T's **daily-dev-agentic** loop: what the agent learned
from daily.dev, distilled into lessons that name why each one matters for the
stack (Claude Code, MCP, multi-agent systems, LangGraph, Firebase, Python,
Rust, local LLMs, fintech infrastructure) and what to do about it.

Each lesson is distilled by the agent from community-vetted daily.dev posts on T's stack (Claude Code, MCP, multi-agent systems, LangGraph, Firebase, Python, Rust, local LLMs, fintech infra) and carries a confidence score. Run state (seen-post watermark, counters) lives in Cloudflare KV, not here. Hand edits are safe — the connector only ever inserts and de-duplicates by source link.
Written mostly by a machine. The daily.dev MCP connector (Cloudflare Worker
`dailydevplugd`) appends lessons after each scheduled run; Claude sessions
add verified fact sheets; humans fix typos. Run state (seen-post watermark,
counters) lives in Cloudflare KV, not here.

## Layout

| Path | What it holds | Written by |
| --- | --- | --- |
| `knowledge.md` | Every lesson, newest day first. Each links its daily.dev source post and carries a confidence score | Connector (`knowledge_append`) |
| `lessons/YYYY-MM-DD.md` | The same lessons, one file per day | Connector |
| `verified/YYYY-MM-DD_topic_vN.md` | Fact sheets verified live in a Claude session, not daily.dev lessons. Revisions bump `vN` | Claude sessions, hand-maintained |
| `harness/check-knowledge.py` | PASS/FAIL check that the files above still have the shape readers rely on | Run by CI and by sessions |
| `LEDGER.md` | One row per hand-made or session-made change (connector runs are not logged here) | Sessions and hand edits |

## How a lesson is shaped

```markdown
## 2026-08-24

- **One actionable sentence, supported by the article.**
- Why it matters here: the link to T's stack or a live project.
- Do: the concrete next action, or "None now".
- Source: [Title](https://...) — Author (⬆️ upvotes · 💬 comments) · tags: a, b · confidence 80%
```

Confidence follows the connector's scale: official docs or maintainer posts
around 80–95, well-upvoted practitioner posts 60–80, single opinions 30–55.
Zero lessons on a quiet day is a valid result; the loop is told never to pad.

## Reading it

- Newest first: open `knowledge.md` and read from the top.
- One day: open `lessons/<date>.md`.
- Something proven rather than read: `verified/`.
- Programmatically: the connector's `knowledge_read` tool (`days: N`) returns
the same content without cloning.

## Checking it

```bash
python3 harness/check-knowledge.py # PASS/FAIL lines
python3 harness/check-knowledge.py --json # same, as one JSON object
```

CI runs this plus markdownlint on every pull request and on every push to
`main` (`.github/workflows/lint.yml`). Run it locally before pushing a branch.

## Hand edits

Safe. The connector only inserts and de-duplicates by source link; it never
rewrites what is already there. Conventions for edits, fact sheets and the
ledger are in [CONTRIBUTING.md](CONTRIBUTING.md).

## License

MIT. See [LICENSE](LICENSE).
Loading
Loading