Make Beats PM Kit Codex-first#11
Conversation
The kit needs a reusable deck-generation path that publishes templates and workflow instructions while keeping generated briefs, source documents, and private workspace content local-only. Constraint: Deck publishing must preserve private-folder ignore rules and remain compatible with the communication-intake release changes already on main. Rejected: Publish generated deck artifacts | those can contain private meeting or customer context. Rejected: Force-push rewritten PR history | the merge update kept reviewed commits intact. Confidence: high Scope-risk: narrow Directive: Keep deck inputs and generated outputs out of git unless they are sanitized templates. Tested: Kilo Code Review pass on reviewed deck changes; adapter-guard pass on refreshed branch; release-readiness and adapter/transcript unit tests pass locally. Not-tested: Live presentation export through third-party office tooling.
Codex now has first-class health and setup entrypoints, custom agents, promoted skill contracts, optional CI prompts/action wiring, and docs that treat Antigravity as compatibility while preserving the shared .agent source of truth. Constraint: Antigravity users still need generated adapters and shared .agent state Constraint: Private status, vault, and MCP data must remain ignored or user-scoped Rejected: Commit generated source-command mirrors | would bloat the initial Codex skill surface Confidence: high Scope-risk: moderate Directive: Keep .agent/command-registry.json as the source of truth and run adapter_guard --mode check after command changes Tested: python system/scripts/adapter_guard.py --mode check Tested: python -m unittest system.tests.test_obsidian_bridge -v Not-tested: Optional GitHub Codex Action execution without OPENAI_API_KEY secret
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a70434328
ℹ️ 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".
| elif target == "daily": | ||
| uri = build_uri("daily", vault_param(config)) | ||
| elif target == "tracker": | ||
| uri = build_uri("open", {"path": str(configured_target(config) / "5. Trackers" / "TASK_MASTER.md")}) |
There was a problem hiding this comment.
Use synced Trackers path for
open tracker
In sync mode, this builds a URI to .../5. Trackers/TASK_MASTER.md, but run_sync() writes that folder as Trackers (per SYNC_MAP). As a result, obsidian_bridge.py open tracker points to a non-existent file in external vaults and fails to open the tracker note users just synced.
Useful? React with 👍 / 👎.
| if path is None: | ||
| return {"path": None, "exists": False, "is_dir": False} |
There was a problem hiding this comment.
Keep
has_obsidian_config key for null vault paths
When as_path() returns None for a malformed or missing vault path entry, path_info() omits has_obsidian_config, but parse_saved_vaults() always reads info["has_obsidian_config"]. A single bad vault entry in obsidian.json will therefore raise KeyError and break status/configure detection instead of being treated as stale/invalid data.
Useful? React with 👍 / 👎.
|
|
||
|
|
||
| def command_sync(args: argparse.Namespace) -> int: | ||
| dry_run = not args.apply |
There was a problem hiding this comment.
Respect
--dry-run when sync flags conflict
The sync command computes dry_run only from --apply, so --dry-run --apply still performs writes. Because both flags are accepted by the parser, users or wrapper scripts can pass both and unintentionally mutate their vault while expecting a preview. Make the flags mutually exclusive or prioritize --dry-run for safety.
Useful? React with 👍 / 👎.
Summary
/obsidianskill.Verification
python system/scripts/adapter_guard.py --mode checkpython -m unittest system.tests.test_obsidian_bridge -vpython system/scripts/detect_runtime.py --humanpython system/scripts/context_health.py --checkpython system/scripts/beats.py codex-doctor -- --jsonpython system/scripts/beats.py codex-setup -- --skip-user-home --skip-hooksNotes
.agent/command-registry.jsonremains the source of truth for generated adapter surfaces.workflow_dispatchand gated onOPENAI_API_KEY.