fix(taiga-auto-sync): match real Taiga MCP tool names and drop impossible owner/sprint checks
The write-guard's matcher regex never matched the actual tool names (createUserStory/createTask/createIssue, not user_story_create etc.), so the metadata guard has never actually fired. It also checked for assigned_to/milestone fields that don't exist on any create tool's schema, which would have denied every create once the matcher was fixed. Guard now validates only the tag contract (area/source/target), covers the batch-create tools per item, and SKILL.md documents the real follow-up calls (assignIssue/assignUserStoryToSprint/addIssueToSprint) needed to set owner and sprint after creation.
This commit is contained in:
@@ -8,9 +8,10 @@ description: Automatically track material IT Infrastructure & Operations impleme
|
||||
Use this workflow automatically when the prompt requests material IT Infra & Ops work. The user does not need to ask for a Taiga update.
|
||||
|
||||
1. Do not create or update Taiga for reading, investigation without a change, planning only, no-op work, or secrets.
|
||||
2. Before creating or activating an item, find the sprint that covers today in WIB. If none exists, create the Monday–Sunday `YYYY-WNN Operations` sprint, then use it.
|
||||
2. Before creating or activating an item, find the sprint that covers today in WIB. If none exists, create the Monday–Sunday `YYYY-WNN Operations` sprint with `createMilestone`, then use it.
|
||||
3. Find an existing matching open item before creating a new one. Reuse its local state reference when available.
|
||||
4. Classify a standalone daily operation as an Issue. Use one User Story only for one outcome with two or more related Tasks; create those Tasks beneath it.
|
||||
5. Every active User Story, Task, and Issue needs an owner, current sprint, one area tag, one `source:<agent>` tag, and one `repo:<name>` or `system:<name>` tag.
|
||||
6. Write all Taiga-facing natural-language text in Bahasa Indonesia: titles, descriptions, comments, summaries, verification, blockers, and handoffs. Preserve code, commands, branch/PR names, repository and service names, domains, tags, statuses, and established technical terms in English.
|
||||
7. Use the Wiki template for the selected item type. Record only material `start`, `progress`, `blocked`, and verified `done` events. Never put credentials or sensitive evidence in Taiga or local state.
|
||||
5. Every active User Story, Task, and Issue needs one area tag, one `source:<agent>` tag, and one `repo:<name>` or `system:<name>` tag on the create call itself — the write-guard hook enforces this and blocks creation when it is missing.
|
||||
6. Owner and sprint are not creation-time fields on this Taiga MCP server. Immediately after creating a User Story or Issue, call `assignUserStoryToSprint` / `assignIssue` / `addIssueToSprint` to set the current sprint and owner before treating the item as active. Tasks have no assignee or sprint tool at all — track Task ownership and sprint through the parent User Story instead.
|
||||
7. Write all Taiga-facing natural-language text in Bahasa Indonesia: titles, descriptions, comments, summaries, verification, blockers, and handoffs. Preserve code, commands, branch/PR names, repository and service names, domains, tags, statuses, and established technical terms in English.
|
||||
8. Use the Wiki template for the selected item type. Record only material `start`, `progress`, `blocked`, and verified `done` events. Never put credentials or sensitive evidence in Taiga or local state.
|
||||
|
||||
Reference in New Issue
Block a user