Add Miro CLI subcommands: miro-init, miro-link, miro-sync#388
Draft
gx-ai-architect wants to merge 4 commits into
Draft
Add Miro CLI subcommands: miro-init, miro-link, miro-sync#388gx-ai-architect wants to merge 4 commits into
gx-ai-architect wants to merge 4 commits into
Conversation
- factory/miro/__init__.py: package marker - factory/miro/templates.py: color maps (agent, drift, component, verdict), frame/shape dimensions, grid layout, connector style constants - factory/miro/analyzer.py: AST-based codebase parser with ProjectStructure, ModuleInfo, ClassInfo, FunctionInfo, Dependency dataclasses; non-Python fallback to directory listing - factory/miro/client.py: MiroClient with token resolution via factory config, exponential backoff on 429, dry-run mode, event emission - factory/models.py: add miro_board_id field to FactoryConfig - pyproject.toml: add miro-api dependency - factory/user_config.py: add commented miro_token, miro_team_id to template Closes #384 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- drift.py: Parses CLAUDE.md/README.md architecture sections and .factory/archive/ for documented components. Detects undocumented, phantom, and drifted items by comparing against ProjectStructure. - layout.py: Pure coordinate math for 3x2 grid frame positioning, top-down item flow layout, and connector routing. - board.py: BoardRenderer creates 6 frames (Overview, Agent Pipeline, Architecture Map, Drift Report, Experiment Timeline, Strategy State), populates with color-coded shapes, and draws dependency connectors. Creates frames before items per April 2025 Miro bug workaround. Closes #385 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tion Implements sync_board() for full pipeline (analyze → drift detect → render) and update_experiment() for incremental updates after new experiments. Non-blocking: all Miro API failures are logged but never propagated. Closes #386 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add three new subcommands to factory CLI for Miro board integration: - miro-init: Create a Miro board for a project (with token setup guidance) - miro-link: Link an existing Miro board to a project via config.json - miro-sync: Sync project state to a linked Miro board Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
cmd_miro_init— creates a Miro board for a project, with token setup guidance ifFACTORY_MIRO_TOKENis not configuredcmd_miro_link— links an existing Miro board ID to a project by writing to.factory/config.jsoncmd_miro_sync— syncs project state to a linked Miro board viafactory.miro.sync.sync_boardmiro-init,miro-link,miro-sync) inbuild_parser()and the handlers dict_run()for async,Path(args.path)conversion