Skip to content

proposals: accept bullets on experiences; find_bullets hosted-mirror doc flips - #102

Merged
the-data-viking merged 1 commit into
mainfrom
claude/surface-dispute-details-skk68b
Jul 26, 2026
Merged

proposals: accept bullets on experiences; find_bullets hosted-mirror doc flips#102
the-data-viking merged 1 commit into
mainfrom
claude/surface-dispute-details-skk68b

Conversation

@the-data-viking

Copy link
Copy Markdown
Contributor

Why

Two lock-step follow-ups to the cloud bullets work (traitprint-cloud#1736 / #1737):

  1. The cloud vault_propose applier now accepts bullets in experience payloads — the CLI's mirrored validator must gain the key at the same time (the "Don't drift from cloud" constraint: proposals.py mirrors the hosted vault_propose validation).
  2. find_bullets is now served by the hosted MCP server, so the "local-only until its hosted mirror ships" doc clauses are stale.

What changed

  • proposals.py_EXPERIENCE_KEYS gains "bullets" (between artifact_links and source, the vault byte order). Shape validation happens at apply via BulletSchema through ExperienceSchema.model_validate, like every other experience field: minimal agent bullets ({text} only) gain generated ids and model defaults; a payload list REPLACES the inventory and [] clears it — the same semantics as the cloud applier's prepareBullets. Stories keep rejecting the key.
  • AGENTS.md / GEMINI.md — dropped the find_bullets hosted-mirror caveats: the hosted mirror shipped 2026-07-26 with the same filters, no default-lens auto-apply, the same deterministic ordering, and per-bullet evidenced/disputed trust signals. GEMINI.md's hosted read-tool list now names find_bullets.
  • CHANGELOG.md — entries for both under [Unreleased].

No contract revision bump: $defs/proposal.payload is free-form by design ("the reference validation lives in traitprint.proposals / the hosted vault_propose"), and the experience entity $defs already carry bullets since revision 1.7.

Testing

  • New proposal tests: bullets accepted on experiences / rejected on stories at validate time; apply fills model defaults (generated UUID id, empty collections, source: "manual"); update replaces and [] clears; blank/over-cap/over-count bullets hard-reject at apply with nothing mutated.
  • pytest -q: 1092 passed. ruff: clean. mypy: only the two known pre-existing unused-ignore artifacts in mining.py (environment-specific, untouched by this change; CI's matrix is clean).

🤖 Generated with Claude Code

https://claude.ai/code/session_01RdYoLHB9CWNAdf8gZVjShZ


Generated by Claude Code

…doc flips

The cloud vault_propose applier gained `bullets` in its experience
payload allowlist (traitprint-cloud#1737); mirror it here so the two
validators stay in lock-step: _EXPERIENCE_KEYS gains "bullets", with
shape validation at apply via BulletSchema through the entity model
(minimal agent bullets gain generated ids and model defaults; a payload
list replaces the inventory, [] clears it).

Also flip the hosted-mirror doc clauses now that find_bullets is served
by the cloud MCP server (traitprint-cloud#1736, deployed 2026-07-26):
AGENTS.md and GEMINI.md no longer call it local-only. No contract
revision bump — $defs/proposal.payload is free-form by design; the
per-kind key allowlists live in traitprint.proposals and the hosted
vault_propose.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RdYoLHB9CWNAdf8gZVjShZ
@the-data-viking
the-data-viking merged commit 3b65bfd into main Jul 26, 2026
4 checks passed
@the-data-viking
the-data-viking deleted the claude/surface-dispute-details-skk68b branch July 26, 2026 20:01

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 455407f20d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"skill_links",
"scope",
"artifact_links",
"bullets",

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 Update the manual for bullet proposals

Once this allowlist ships, the canonical AGENTS.md still tells agents under the bullet instructions to hand-edit them because proposal support is a future follow-up. In an agents init project, an agent staging extracted resume bullets may therefore bypass the newly supported add_experience/update_experience proposal path and its user-review gate. Update that guidance to document the proposal payload and its replace/clear semantics.

AGENTS.md reference: AGENTS.md:L343-L347

Useful? React with 👍 / 👎.

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.

2 participants