Repository navigation
fix: route approved card publication by available identity #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
HaodiFan
wants to merge
1
commit into
main
Choose a base branch
from
codex/approved-publish-identity-routing
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
39 changes: 39 additions & 0 deletions
39
.evozeus-wrapper/docs/designs/2026-09-22-approved-publish-identity-routing.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| # Design Doc: Approved Publish Identity Routing | ||
|
|
||
| ## Related issue | ||
|
|
||
| - Issue: #10, #11 | ||
| - What was unsatisfactory: The execution-card rules covered evidence boundaries and person-led task content, but approved publication did not define how to select a sender identity for an external group. A valid user profile could be denied while a bot identity in the same profile could publish successfully. | ||
| - Expected behavior: Before publishing, resolve the destination and probe the configured profile's user and bot capabilities. Prefer the user identity, fall back once to an in-group bot on the same profile when the user route is denied, and persist the actual sender and fallback reason in the receipt. | ||
|
|
||
| ## Optimization goal | ||
|
|
||
| Make approved publication deterministic across private chats and external groups, while preserving the existing content approval, idempotency, and no-Base-mutation boundaries. | ||
|
|
||
| ## Direction | ||
|
|
||
| Keep `METAINFLOW_FEISHU_PROFILE` as the only default profile. Add sender routing at the approved-publish boundary: user first, same-profile bot fallback when membership and readiness are confirmed, otherwise a blocked result with the exact reason. Keep the execution-card content contract person-led and require direct task/cell links only for registered deliverables. | ||
|
|
||
| ## Implementation plan | ||
|
|
||
| - Skill sections to change: approved publish routing, execution-card structure, publication receipt contract. | ||
| - Files to update: `SKILL.md`, `references/daily-operations.md`, `tests/test_business_contracts.py`, `.evozeus-wrapper/CHANGELOG.md`. | ||
| - Backward compatibility: Scheduled runs remain `proposal_only` and `private_draft`; no automatic publish, Base mutation, status change, acceptance, or baseline change is added. | ||
|
|
||
| ## Verification plan | ||
|
|
||
| - Source discovery check: verify the configured profile, destination chat, and both identity readiness states before publish. | ||
| - Manual checks: user-denied/bot-available publishes once as bot; user-available publishes as user; both unavailable returns blocked; receipt records sender and fallback. | ||
| - Regression cases: duplicate idempotency key does not resend; changed card fingerprint or destination invalidates approval; unregistered collaboration item has no fabricated link. | ||
| - Preflight command: `python3 .evozeus-wrapper/scripts/evozeus_wrapper_preflight.py doctor --repo MetaInFLow/metainflow-dev-tasks`. | ||
|
|
||
| ## Release plan | ||
|
|
||
| - Changelog entry: Unreleased patch for approved-publish identity routing and person-led card contract. | ||
| - Release tag: next patch release after review and merge. | ||
| - Release description summary: closes the publication gap observed while delivering the 2026-09-22 execution card. | ||
|
|
||
| ## Risks and rollback | ||
|
|
||
| - Risk: Some external chats may permit neither sender identity; the Skill must report a blocked publication without trying unrelated profiles. | ||
| - Rollback plan: revert the focused Skill, reference, test, changelog, and design-doc changes; retain the existing Issue #10/#11 behavior. | ||
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
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
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This implementation plan explicitly includes
.evozeus-wrapper/CHANGELOG.md, but the commit leaves that file untouched; its current Unreleased section only describes the earlier v0.15.0 harness upgrade. Because this repository treats the changelog as the Skill release fact source, the new sender-routing and execution-card contracts would be omitted from the next release record, including their related issues, verification, and rollback details.Useful? React with 👍 / 👎.