Commit graph

1499 commits

Author SHA1 Message Date
alirezarezvani
043046ac87 chore: sync codex skills symlinks [automated] 2026-08-24 20:15:06 +00:00
Alireza Rezvani
750dc7bf17
Merge pull request #979 from Hanishchow/add/hivemind-skill 2026-08-24 22:14:53 +02:00
alirezarezvani
3019bcc5f8 chore: sync codex skills symlinks [automated] 2026-08-24 20:05:09 +00:00
Alireza Rezvani
9ce1537254
Merge pull request #983 from alirezarezvani/claude/skill-doctor-rebuild-cgmzpu 2026-08-24 22:04:55 +02:00
Claude
d12e2586d0
fix(skill-doctor): address automated review — repo-match transparency, exact-id error dedup
- collect_sessions.py: name-only repo matches (worktree/basename fallback,
  which can match an unrelated same-named repo) are now recorded per session
  (repo_match), counted in inventory.json, called out in the summary, and
  excludable via a new --strict-repo flag
- score_aggregator.py: never-scored detection tracks session ids in a set
  instead of substring-matching error text, so a prefix-style id can no
  longer suppress another session's never-scored error
- redact_secrets(): broader patterns no longer stack markers on top of an
  already-redacted value
- session files read through the MAX_FILE_BYTES cap instead of slurped whole
- README deviations 21-22 recorded; count trued to 22 in CLAUDE.md and
  authoring-notes; prefix-id regression + single-marker redaction verified

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yFdbrdBnFL8Gw7DLrdg19
2026-08-24 20:03:06 +00:00
Claude
67972e0a61
Merge remote-tracking branch 'origin/dev' into claude/skill-doctor-rebuild-cgmzpu 2026-08-24 19:57:07 +00:00
Alireza Rezvani
9bfa6d7c16
Merge pull request #982 from alirezarezvani/claude/review-15-reported-issues-vrt6b2
fix: opt-in pw MCP servers (#978) + unblock the G1 path gate broken by agent-launcher
2026-08-24 21:05:27 +02:00
Claude
32240a03d6
Merge remote-tracking branch 'origin/dev' into claude/review-15-reported-issues-vrt6b2
# Conflicts:
#	agent-launcher/skills/agent-launcher-orchestrator/SKILL.md
#	agent-launcher/skills/grade-iterate/SKILL.md
#	agent-launcher/skills/interview/SKILL.md
#	agent-launcher/skills/run-without-you/SKILL.md
#	agent-launcher/skills/stage-launch/SKILL.md
#	agent-launcher/skills/wrap-up/SKILL.md
2026-08-24 19:02:56 +00:00
Claude
813740767c
merge dev (agent-memory) into skill-doctor branch: counters trued to 379/706/823/111/131/96
Resolved the three counter conflicts by taking dev's versions and re-applying
the skill-doctor additions: marketplace entry re-inserted, CLAUDE.md unreleased
section + scope/trailer lines, README badges + engineering row (90, now
mentioning skill-doctor). derive_counters --check passing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yFdbrdBnFL8Gw7DLrdg19
2026-08-24 18:57:27 +00:00
Claude
40f7025250
feat(engineering): rebuild warpdotdev skill-doctor as evidence-gated grading plugin
Rebuild of warpdotdev/common-skills' skill-doctor (MIT, pinned f3b58c81) as a
full engineering/ plugin: harvest local Claude Code + Codex sessions scoped to
one repo, judge condensed transcripts against the two verbatim-preserved
rubrics (labels only), then run a deterministic aggregation gate and render a
self-contained zero-JS HTML report. 20 numbered deviations recorded in the
plugin README (authoritative list).

- new score_aggregator.py gate: derives every number from the rubric label
  tables, rejects scores for unsampled sessions, length-checks reasons,
  refuses suggestions that cite no scored session or carry no diff (exit 4)
- collector hardening: always-on 12-pattern secret redaction with per-label
  counts, chmod 0700/0600 artifacts, plugin-layout skill discovery,
  slash-command usage detection; Warp sqlite/protobuf path dropped
- renderer replaced: pure-CSS diffs + native <details> collapse instead of a
  1,531-line prebuilt JS bundle; dark-mode, print-to-PDF; vendor CTA removed
- cs-skill-doctor agent, /cs:skill-doctor command, 3 references citing 7
  sources each, 3 handoff-shape assets; SKILL.md 6/6 PASS on write-a-skill
- counters trued: skills 378, tools 698, refs 820, agents 110, commands 130,
  plugins 95 (derive_counters --check passing)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017yFdbrdBnFL8Gw7DLrdg19
2026-08-24 18:54:08 +00:00
Claude
e5691c2a4f
docs(pw): soften 3 remaining README oversell spots — tagline, commands, MCP heading (#978)
Earlier commits added a caveat before 'Integrations Setup' but left three earlier
spots in the same README describing TestRail/BrowserStack as working out of the box:
the H1 tagline, the /pw:testrail + /pw:browserstack Commands-table rows, and the
'2 MCP Integrations' heading under What's Inside. Add pointers/caveats to each so a
reader skimming the top of the README gets the same 'optional, manually enabled'
signal. Per review feedback on #981.
2026-08-24 18:53:53 +00:00
Claude
44ec785a79
fix(pw): correct manual-enable path in CLAUDE.md — integrations/<name>-mcp (#978)
The CLAUDE.md caveat said 'cd integrations/<name>' but the real directories are
integrations/testrail-mcp and integrations/browserstack-mcp (the -mcp suffix that the
removed .mcp.json used and that the other four touched docs already spell correctly).
Following it literally would cd into a nonexistent dir. Per review feedback on #981.
2026-08-24 18:50:07 +00:00
alirezarezvani
de4bd7848a chore: sync codex skills symlinks [automated] 2026-08-24 18:47:48 +00:00
Alireza Rezvani
c8d9ea6b17
Merge pull request #946 from alirezarezvani/claude/tencent-agent-memory-diy7p7 2026-08-24 20:47:35 +02:00
Claude
631515db56
docs(pw): soften marketplace.json listing — TestRail/BrowserStack optional (#978)
Companion to the plugin.json description fix: the marketplace listing (the copy users
see before install) still advertised 'TestRail + BrowserStack MCP integrations' as
bundled. Match the softened plugin.json wording ('optional (manually enabled) ...') so
both listings are consistent. Per review feedback on #981.
2026-08-24 18:47:13 +00:00
Claude
9f2c50e285
fix(agent-memory): address automated review; harden the session-id fallback
Five of six findings were real. Verified each against the code rather than
taking them at face value; one was wrong and is noted below.

1. validate_examples.py carried a stale header from the spec-only phase --
   "PARKED AS AN ASSET (deliberately not .py yet)... ON IMPLEMENTATION: rename
   to skills/agent-memory/scripts/validate_examples.py". The file is already at
   exactly that path. Rewritten to describe what it now is, keeping the
   substantive part: why it exists, the seven check families, why it compares
   the doc's algorithm by source text rather than exec()-ing a code fence, and
   that nothing runs it automatically.

2. Missing shebang -- added. The same finding also claimed mode 100644; that
   half is wrong, `git ls-files -s` shows 100755 for all five scripts.

3. hooks.json's description still opened "CONTRACT ONLY -- the referenced
   scripts are not yet implemented", true of none of them now. Trimmed to keep
   only the UserPromptSubmit provisionality (9.5 is genuinely still open) and
   to record the measured latency alongside it.

4. The session-id fallback was the finding worth the most. `session_id` is the
   right key -- engineering/security-guidance's shipped hook reads the same one
   -- but the fallback was the CONSTANT "unknown-session", and sessions dedupe
   by value. Had the key ever been absent, every session would collapse onto
   one id, len(set(sessions)) would plateau at 1, and every claim would cap at
   L1 forever with no error anywhere. Now falls back to the transcript's own
   basename, which IS the session id. Verified end-to-end with session_id
   omitted from the payload: the atom records the real session UUID.

5. Dead `now` parameter on _eligible_l1 -- removed.

6. marketplace.json metadata still said 104 agents / 120 slash commands,
   pre-existing drift on a line this branch already edits. Trued up to 110/130.

Re-verified after: 69 checks 0 failures, SKILL.md 6/6 PASS, both blocking gates
still fire by name, check_paths 620 files clean, counters and plugin-json pass,
all 5 scripts --help, all 3 hooks parse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-24 18:45:52 +00:00
Claude
9645307cfd
docs(pw): soften plugin.json description — TestRail/BrowserStack are optional, manually-enabled (#978)
Marketplace listing said 'sync with TestRail, run on BrowserStack' which reads as
out-of-the-box capability; the integrations now require manual enablement. Reword to
'optional (manually enabled) TestRail/BrowserStack integrations' so the listing itself
doesn't oversell. Per review feedback on #981.
2026-08-24 18:43:29 +00:00
Claude
d655976ccf
docs(pw): propagate 'MCP servers not auto-registered' caveat to remaining docs (#978)
Addresses review feedback on #981: README.md, skills/pw/SKILL.md, and the
testrail/browserstack SKILL.md files still described the integrations as working
after just exporting env vars. Add a caveat to each that pw-testrail/pw-browserstack
are no longer auto-registered and that /pw:testrail // /pw:browserstack (and the
testrail_*/browserstack_* MCP tools) fail with 'tool not found' until the server is
enabled manually, pointing to the CLAUDE.md Integrations section.
2026-08-24 18:40:19 +00:00
Claude
95459ffd2b
fix(agent-launcher): make SKILL.md path references resolvable — unblocks the G1 CI gate for every PR
The freshly merged agent-launcher plugin's six SKILL.md files referenced
scripts and references relative to the plugin root (skills/<s>/scripts/x.py,
references/x.md), which resolves from none of the path linter's bases — so
check_paths.py --all fails on dev with 24 findings, and G1 is a blocking
gate on every future PR. Script commands now use repo-relative paths and
reference labels use the skill-dir-relative ../../references/ form that the
existing markdown link targets already used. 0 unresolvable after the fix.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-24 18:33:48 +00:00
Claude
bde43b44bc
fix(pw): stop registering never-working TestRail/BrowserStack MCP servers (#978)
The pw-testrail and pw-browserstack servers were declared in playwright-pro/.mcp.json
and launched via `npx tsx integrations/<name>/src/index.ts`, but the plugin ships no
node_modules and nothing installs @modelcontextprotocol/sdk. Both therefore failed to
connect for every user — permanent 'Failed to connect' lines in `claude mcp list` —
whether or not TestRail/BrowserStack was configured.

Empty the .mcp.json server map (no build systems per repo convention; the integration
TS sources stay in-tree) and document in CLAUDE.md that the two integrations are no
longer auto-registered plus how to enable them manually (npm install + user/project
MCP config).
2026-08-24 18:28:52 +00:00
Claude
bf005356e0
fix(playwright-pro): make TestRail/BrowserStack MCP servers opt-in instead of always-failing (#978)
The two MCP servers registered in .mcp.json could never start: their
@modelcontextprotocol/sdk dependency is declared but never installed
(the plugin ships no node_modules and nothing runs npm install), so every
user saw a permanent 'Failed to connect' pair in `claude mcp list`.

Per the reporter's option 4 + docs: the registrations move to
integrations/mcp-servers.example.json (no longer auto-loaded), and the
README's Integrations Setup section now documents the two-step opt-in
(npm install inside the integration folder, copy the example to .mcp.json).
The integrations themselves are unchanged and keep working for users who
enable them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-24 18:28:45 +00:00
Claude
2e59fe9873
Merge remote-tracking branch 'origin/dev' into claude/tencent-agent-memory-diy7p7
# Conflicts:
#	.gitignore
#	CLAUDE.md
2026-08-24 18:23:59 +00:00
alirezarezvani
98bb66eecc chore: sync codex skills symlinks [automated] 2026-08-24 18:23:19 +00:00
Alireza Rezvani
d58ee65969
Merge pull request #980 from alirezarezvani/claude/agent-launcher-plugin-2pd4qc 2026-08-24 20:23:05 +02:00
Claude
a3b6a195cb
feat(agent-memory): implement the four-tier memory ladder
Turns DESIGN.md from a spec into a working plugin. Five stdlib scripts, three
hooks, agent, command, three references, plugin manifests.

The gates are the design:
  L1 -> L2  >= 3 distinct sessions spanning >= 2 distinct calendar days
            (`stated` = 2 sessions, day rule still applies; `verified` = 1
            observation and is the only day-exempt path)
  L2 -> L3  >= 2 distinct projects, >= 30 days, uncontested

Two gates refuse rather than guess. `redacted: true` blocks promotion on any
volume of evidence -- a durability-independent barrier, since a secret restated
across five sessions passes every recurrence gate; the flag firing means the
text was altered, a lexical filter finding one secret is not proof it found all
of them, and L2/L3 are committed to git. An open contradiction freezes both
claims, found by reverse join because the newer atom carries no flag.

All three hooks fail open: a broken memory system costs memory, never a session.
SessionEnd stages promotions to .memory/staged/ and never touches a CLAUDE.md;
only an explicit human adopt does, after backing both files up.

Verified, not asserted:
  - all three pinned atom ids from DESIGN.md reproduce exactly
  - both blocking gates demonstrated on sample input, named in the output
  - end-to-end: two transcripts across two calendar days -> merged L1 atom ->
    staged L2 promotion with the path prefix stripped
  - reverse join blocks the unflagged newer atom
  - cross-tier L2/L3 collision marked at injection time
  - recall p50 29ms / p95 31ms / max 35ms spawn-to-exit, scoring itself 2-3ms
    over 500 atoms -- interpreter cold start is the entire cost
  - validate_examples.py 69 checks 0 failures; SKILL.md 6/6 PASS
  - derive_counters --check, check_plugin_json --all, check_paths all clean

DESIGN.md 10.1's "+6" tool estimate corrected to +8 -- the delivered surface is
5 scripts + 3 hooks. README.md's deviations list is authoritative for that and
five other divergences from the pre-implementation spec.

Concept from TencentCloud/TencentDB-Agent-Memory (MIT). No upstream code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-24 18:23:01 +00:00
Claude
debda44029
docs: address PR #980 review — wire agent-launcher into root CLAUDE.md, fix dangling report pointer, align version strings
- root CLAUDE.md: Navigation Map row, Repository Structure tree line, and an
  'Unreleased (post-v2.11.2, PR #961 merged)' narrative for the agent-launcher
  domain (grep previously returned zero mentions)
- CHANGELOG: the verification sentence no longer points at
  agent-launcher/DELIVERY-REPORT.md — per the maintainer finish-plan
  (audit/pr-stream-2026-08) that report moved to gitignored documentation/;
  SPEC.md remains the public build target
- sync scripts: v2.12 comment/description strings -> 'unreleased, post-v2.11.2'
  to match the normalized plugin version; codex index regenerated

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FwXG6TqCXKZQvF4iD69cv
2026-08-24 17:37:51 +00:00
Claude
86beb8f4bf
fix(agent-launcher): resolve gate-G1 phantom-path findings in the 6 SKILL.md files
check_paths.py resolves path tokens against the sub-skill root, the file's own
directory, or the repo root — the SKILL.md bash examples used plugin-root-relative
paths (skills/<skill>/scripts/x.py) that none of those bases resolve, and shared-
reference link texts (references/x.md) only resolved from the domain root. Bash
examples now use skill-dir-relative scripts/x.py; reference links use explicit
../../references/x.md. 617 files scanned, 0 findings; all other blocking gates
(G3/G4/G7/G8/G10, plugin.json, skill names) verified green locally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FwXG6TqCXKZQvF4iD69cv
2026-08-24 17:29:25 +00:00
Claude
abd9c9d8de
docs(site): generate agent-launcher pages (18th domain) + nav
generate-docs.py learns the agent-launcher domain (5 hardcoded maps extended);
regenerated docs tree: 343 skill pages / 96 agent pages / 122 command pages
(561 total). mkdocs.yml nav gains the Agent Launcher skill section (7 pages),
4 cs-agent-* agent entries, and 8 /cs:* command entries; all nav targets verified
to exist.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FwXG6TqCXKZQvF4iD69cv
2026-08-24 17:26:12 +00:00
Claude
42822bfeca
chore(sync): register agent-launcher domain in codex/gemini/vibe/hermes syncs + refresh mirror trees
Adds agent-launcher to the four sync scripts' domain lists and re-runs them:
.codex + .gemini indexes now carry the 6 skills; .vibe + .hermes repo trees
regenerated (also catches up skills merged since the last sync). The pre-existing
.codex/skills/run symlink collision (autoresearch-agent vs agenthub, both named
'run') is left at its previous target.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FwXG6TqCXKZQvF4iD69cv
2026-08-24 17:26:12 +00:00
Claude
9ceecb1e70
docs(agent-launcher): post-merge follow-up — changelog entry, plugin audit fixes, ClawHub publish plan
- CHANGELOG: [Unreleased] section for the agent-launcher domain (PR #961, merged 2026-08-21)
- 8-phase plugin audit: PASS WITH WARNINGS — structure 84.8-91.3 (orchestrator
  EXCELLENT), security 0 critical/high across all 6 sub-skills, 18/18 scripts PASS
- audit auto-fixes: per-sub-skill READMEs (6), SKILL.md versions aligned to the
  2.11.2 normalization from the merge, removed untracked scripts/my-agent/ test
  debris (the one real security finding), my-agent/ added to .gitignore so user
  launch artifacts can never be committed
- PUBLISH-CLAWHUB.md: publish order, slug-conflict fallbacks (cs- prefix registry-
  only), 5-skills/hour drip constraint

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012FwXG6TqCXKZQvF4iD69cv
2026-08-24 17:26:12 +00:00
N Hanish
0aa54e8229
fix(engineering): tighten hivemind description and harden server spawn
- tighten the SKILL.md description from 390 to 300 chars, core trigger first
- validate HIVEMIND_SERVER_URL and spawn opencode serve with an args array and
  shell:false, so no environment value is shell-interpolated
- add LICENSE.txt (Apache 2.0); frontmatter stays name + description per CONVENTIONS
2026-08-23 20:06:43 +05:30
N Hanish
2c05206907
feat(engineering): add hivemind orchestration skill
Hivemind delegates grunt work to headless opencode workers (scout/coder/tester)
while the orchestrating agent stays the planner, reviewer, and merger.

- placed under engineering/ per repo layout; targets dev per CONTRIBUTING
- frontmatter is name + description only; SKILL.md is 165 lines
- anti-patterns and cross-references sections included
- external opencode CLI dependency and free-model caveats documented up front
- runtime state (.runs/) gitignored, not committed
2026-08-23 19:39:42 +05:30
Claude
38a23f1911
docs(agent-memory): state the redaction gate, the reverse join, quote hook paths
Round-44 review, three findings, all verified before fixing.

1. The schema's `redacted` description has always asserted "never
   promoted to a committed tier without human review" -- a real gate that
   DESIGN.md stated nowhere. Confirmed by grep. Added to 4.1 with the
   reason the flag carries: redacted:true means the pass ALTERED the
   claim, which is positive evidence the source was sensitive, and
   redaction is lexical so finding one thing is not proof of finding
   everything. Recurrence cannot substitute -- three sightings of a
   scrubbed claim are three sightings of the same unresolved risk.

2. hooks.json did not quote ${CLAUDE_PLUGIN_ROOT} while both precedents
   this PR cites do (handoff: python3 "${...}/hooks/session_start.py";
   skillopt-sleep: "${...}/hooks/on-session-end.sh"). A path with a space
   would break the command. Quoted all three.

3. 4.2.1 says "both sit at L1" but the schema marks only the older atom
   (contested, contested_by), so the promotion gate cannot be a field
   read on both sides. Specified the reverse join: blocked if own
   `contested` is set OR own id appears in another atom's contested_by.
   Deliberately not a mirrored `contests` field -- same fact in two
   places, needing sync, with nothing able to say which copy is right.
   Cheap by construction: 5.2 caps the store at 500 atoms and measured a
   full pass at 2-3ms.

Did NOT add a schema->doc dangling-section-ref check. Wrote one, it
reported 3.1.1 and 4.1.2 as dangling, and both exist -- my heading regex
required a trailing period that sub-sections do not carry. Re-ran
correctly: zero dangling refs. A brittle checker for an empty class,
which I got wrong twice inside two minutes, is worse than no checker.

Verified: hooks.json parses; 69 checks, 0 failures; derive_counters.py
--check passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-21 09:39:56 +00:00
Claude
2b36d79161
docs(agent-memory): handle Windows back-pointers, state first-run behaviour
Round-43 review found the Windows gap that 42 rounds missed. Verified it
is a hard break, not cosmetic: the schema's L1 pattern is
^~/\.claude/projects/[^/]+/[A-Za-z0-9._-]+\.jsonl#L[0-9]+$ -- literal ~/
and forward slashes -- so a path built from %USERPROFILE%\.claude\...
matches nothing and an extractor recording the OS path verbatim emits an
atom the schema rejects outright.

Resolved rather than added to 9, because it is mechanical: `source` and
`first_source` store a canonical form, not an observed one. The extractor
derives the ~/-relative forward-slash form from whatever the platform
handed it, the same way 3.1.1's promotion derives the stripped form
rather than storing what it saw -- recording is already a transform here.

Worth noting the blast radius: L2 and L3 are already platform-neutral,
since the stripped form is a bare <session>.jsonl#L<n> with no path.
Nothing committed is affected, only the gitignored L1. 3.1.1's
de-identification stripping bought portability for free.

Also stated first-run behaviour, which 5.4 skipped while specifying
concurrent writers in detail: a missing .memory/atoms.jsonl is the normal
initial state, read as an empty store and created on first write, with
recall returning nothing rather than failing.

Verified: 69 checks, 0 failures; derive_counters.py --check passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-21 09:32:56 +00:00
Claude
8c9c4184da
docs(agent-memory): put the checker note where an editor will see it
Round-42 review: the "run the validator before editing" requirement lived
in 10.1 and the PR body. Someone opening DESIGN.md six months from now
reads neither -- and "a future editor who does not know the file exists"
is the exact failure the doc names. Now a callout at the top with the
command in it. Fourth time this review series has turned up a rule
stated somewhere other than where the person who needs it is looking.

Also sharpened what round 41 recorded about 9. The reviewer read "~700
lines of settled contract downstream of an unmeasured question" as a
reason to trim 4-5 until the extraction spike reports. Worth being
precise instead: a "no" on (2) does not make the promotion machinery
wrong -- recurrence counting, the tier caps and the contradiction
detector operate on atoms however they were produced, and none reference
the extraction method. It makes them unused. Content that would need
rework is worth deferring; content that would go unread is not, since
deleting reviewed text to re-derive it later costs more than leaving it.
Recorded as a sequencing lesson for the next spec this size rather than
a call to cut.

Verified: 69 checks, 0 failures; derive_counters.py --check passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-21 09:28:11 +00:00
Claude
c6dbc8e117
docs(agent-memory): re-measure CLAUDE.md, rank 9's decisions by what they gate
Round-41 review, two findings.

The 1 size claim went stale in a way worth being precise about. 85,875
bytes was correct at 67a1228, but merging dev moved this branch's base
and the file is now 90,312 -- and the parenthetical says "measured at
this branch's base", so it was false as written. Updated to 88 KB /
90,312, and noted that it grew 4,437 bytes while this PR was open, which
is 1's own thesis demonstrating itself on the file it is about. Round
29's principle still holds: the checker verifies the sentence's internal
consistency (method named, units agree), never a live comparison -- both
checks pass on the new figures.

Second, and the better finding: 9 listed six decisions as a flat set,
which understated that two of them decide whether there is a system at
all. (2) extraction-without-an-LLM gates everything downstream -- the
session gate, the tier caps, the contradiction detector are only as good
as what the extractor produces -- and (3) is answered by (2), since
9.3's 2-week trial IS the test of it. The other four are local: each
changes one mechanism and leaves the rest standing, including (5), whose
worst case deletes one hook while the tiering survives on SessionStart.
Now a table, with the cost stated plainly: ~700 lines of settled contract
sit downstream of a question nobody has measured.

Verified: 69 checks, 0 failures; derive_counters.py --check passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-21 09:25:03 +00:00
Claude
e9ab2b416f
docs(agent-memory): name redaction as the fast path's only barrier
Round-40 review made a point the spec had left to inference: the
recurrence gates are a durability filter, not a secrets filter. A secret
seen in three sessions across three days is exactly as much a secret as
one seen once, so the gates were never protecting CLAUDE.md from a leak
-- they only made one slower. The `verified` fast path removes even that,
taking a claim from a single sighting to a committed marker block with
6 rule 1's redaction pass as the sole barrier.

Stated in the fast-path block itself rather than left to a reader
combining 4.1 with 6 -- the third time this review has turned up a rule
living in one section while the surface an implementer builds from lives
in another. Two consequences named: redaction must not be shortcut on the
`verified` path ("a script confirmed it" says nothing about whether the
text holds a credential -- "the staging key sk-... works" is a plausible
verified claim), and a verified 1-observation atom carrying a secret is
the first behavioural test memory_promote.py should have, since it is the
shortest path in the system from raw transcript to committed file.

Verified: 69 checks, 0 failures; derive_counters.py --check passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EM5xmJ7AmTMg31rq68BCym
2026-08-21 09:20:35 +00:00
Claude
266e14c636
Merge remote-tracking branch 'origin/dev' into claude/tencent-agent-memory-diy7p7 2026-08-21 09:14:51 +00:00
Claude
3b54f6266d
docs(agent-memory): add §2.5 — memory-engineering overlap analysis (advisory vs runtime layers, F1-F8 lintability, cost-profiler framing)
The decision-driving §2 predated engineering/memory-engineering landing on
dev (#947) and never mentioned it. Adds the missing subsection: layer
distinction (it audits memory systems; this would be one), the namespace
fence both SKILL.mds must carry, a commitment that §5.1's eviction and
contradiction rules stay expressible in forgetting_policy_linter.py's F1/F4
form, and memory_cost_profiler.py as the §7 budget framework. Conclusion
renumbered 2.5 -> 2.6. Counters untouched by design (spec-only folder).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Bzm6Pafyxja6g4jUDPcei
2026-08-21 09:12:15 +00:00
Alireza Rezvani
31a23f0191
Merge pull request #961 from alirezarezvani/claude/agent-launcher-plugin-2pd4qc
Some checks failed
Sync Codex Skills Symlinks / sync (push) Has been cancelled
feat(agent-launcher): new domain plugin for building Claude Managed Agents
2026-08-21 11:11:27 +02:00
Claude
3e29c960fa
merge dev into agent-launcher branch: counters trued to 377/695/817/94, D1 sidecar move, models pinned to claude-opus-5, references topped up
- Conflict resolution takes dev's counter surfaces and re-applies the
  agent-launcher marketplace entry (description trimmed to 950 chars for the
  new <=1024 guard) and README domain row
- plugin.json source/attribution moved verbatim to authoring-notes.json per
  the post-#954 schema dev now enforces; version aligned to 2.11.2
- claude-opus-4-8 (retired, G7-blocking since #938) pinned to claude-opus-5
  across 5 scripts + example build sheet; all touched scripts re-smoke-tested
- 4 references topped up with external sources (7-8 each)
- DELIVERY-REPORT.md removed from the public tree (sprint artifact; content
  preserved in PR #961 body and git history) — SPEC.md stays as build target
- Gates green: derive_counters --check pass, plugin-json 94 OK + marketplace
  guard OK, frontmatter 0 errors, model freshness 0 findings, smoke 0 failed,
  hooks exit 0 with and without AGENT_LAUNCHER_SESSION

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Bzm6Pafyxja6g4jUDPcei
2026-08-21 09:11:08 +00:00
alirezarezvani
6cba04a0a5 chore: sync codex skills symlinks [automated] 2026-08-21 09:05:01 +00:00
Alireza Rezvani
4d7df8adeb
Merge pull request #948 from alirezarezvani/claude/humanizer-skill-audit-plugin-hocj85
feat(engineering): human-gate — audit of petergyang/human-review + batched human review as a verification artifact
2026-08-21 11:04:49 +02:00
Claude
fbc3cdc3f7
merge dev into human-gate branch: resolve counter surfaces, move attribution to authoring-notes.json sidecar (issue #954 policy), true up counters to 371/675/812/93
Conflict resolution takes dev's counter surfaces and re-applies the
human-gate additions on top (marketplace entry, README engineering-row
highlight). plugin.json extension keys (source/attribution) relocated
verbatim to .claude-plugin/authoring-notes.json per the post-#954 schema
that dev's check_plugin_json.py now enforces. All gates re-run green:
derive_counters --check pass, plugin-json 0 FAIL, frontmatter 0 errors;
human-gate scripts re-verified (--help x3, --sample, base-void-tag
regression fixture, G1 close-refusal exit 2, no network imports).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Bzm6Pafyxja6g4jUDPcei
2026-08-21 09:04:37 +00:00
alirezarezvani
2d4b0f7005 chore: sync codex skills symlinks [automated] 2026-08-21 09:02:53 +00:00
Alireza Rezvani
490616e776
Merge pull request #975 from alirezarezvani/claude/pr-audit-planning-mhy82k
fix(stream): post-merge required changes for the PR-stream batch + counter true-up + #964 guard
2026-08-21 11:02:41 +02:00
Claude
08740d4ec2
fix(stream): post-merge required changes for PRs #895/#926/#942/#943/#944/#965 + counter true-up + #964 guard + #954 doc drift
Applies every pre-merge required change from audit/pr-stream-2026-08/ that
could not land on contributor forks, plus the stream's cross-cutting fixes:

- stock-analysis (#944): description trimmed 1463 -> 1001 chars; Anti-Patterns
  + Cross-References sections added; security-auditor false positive at
  holdco-assetmgr.md:58 suppressed inline (auditor:ignore-line) -> strict PASS
- deepread (#965): renamed research/dsh-deepread -> research/deepread; H1 and
  name updated; research-summarizer cross-ref path-qualified; 12 cited sources
  added across both references; plugin.json + marketplace entry; routed in the
  research orchestrator (SKILL.md registry + SIGNALS + classifier.py in
  lockstep, verified: 'deeply read this pdf' -> deepread, 3 signals)
- business-name-fit (#926): 'Use whenever' -> 'Use when' (validator trigger
  regex); +2 cited sources (USPTO TMEP §1209, Usunier & Shaner 2002) -> 5
- embedded-iot-mentor (#942): references/hardware-selection.md (7 sources,
  datasheet-anchored) + worked mini-example; validator length gate now passes
- swedish-mentor (#943): references/swedish-resources.md (6 sources, stable
  official URLs only); session recipes, milestones, learner situations,
  worked example; mandated opener softened to guidance; plugin.json +
  marketplace entry; validator length gate now passes
- Related Projects (#895): LinkedIn Skills row trued up (10 -> 11 skills,
  hardcoded star count dropped)
- check_plugin_json.py: marketplace description <= 1024 guard added to --all
  (the #964 regression guard; commercial-skills sits at 1021/1024)
- #954 doc drift: quality_gates_for_skills.md, cs-skill-author.md,
  security-guidance SKILL.md now point attribution at authoring-notes.json
- Counter true-up after the 6-skill merge batch: 370 skills / 672 tools /
  809 refs / 92 plugins across README.md badge+table, CLAUDE.md, marketplace
  metadata (derive_counters.py --check passes)

All gates green locally: frontmatter 0 errors, model freshness 0 findings,
dual-publish 0 drifted, paths 0, smoke 0 failed, plugin-json 0 FAIL.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017Bzm6Pafyxja6g4jUDPcei
2026-08-21 09:01:24 +00:00
kriptoburak
8f280faf5b fix(pulse): import local X research exports 2026-08-21 11:56:17 +03:00
alirezarezvani
10bd9258a1 chore: sync codex skills symlinks [automated] 2026-08-21 08:47:50 +00:00
Alireza Rezvani
7a65c0827f
Merge pull request #943 from mh-mansouri/feature/swedish-mentor
feat(productivity): add swedish-mentor skill
2026-08-21 10:47:37 +02:00