@mmerterden/multi-agent-pipeline 8.6.0 → 8.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +30 -49
  2. package/package.json +4 -1
  3. package/pipeline/commands/multi-agent/_account-picker.md +1 -1
  4. package/pipeline/commands/multi-agent/refs/features/dev-critic.md +44 -0
  5. package/pipeline/commands/multi-agent/refs/features/external-context-injection.md +63 -0
  6. package/pipeline/commands/multi-agent/refs/features/plan-todos.md +20 -0
  7. package/pipeline/commands/multi-agent/refs/features/prior-fix-detection.md +49 -0
  8. package/pipeline/commands/multi-agent/refs/features/repo-map.md +30 -0
  9. package/pipeline/commands/multi-agent/refs/features/shadow-git.md +24 -0
  10. package/pipeline/commands/multi-agent/refs/phases/phase-0-init.md +3 -3
  11. package/pipeline/commands/multi-agent/refs/phases/phase-1-analysis.md +4 -121
  12. package/pipeline/commands/multi-agent/refs/phases/phase-3-dev.md +4 -75
  13. package/pipeline/commands/multi-agent/refs/phases/phase-6-commit.md +1 -1
  14. package/pipeline/commands/multi-agent/setup.md +14 -6
  15. package/pipeline/commands/multi-agent/sync.md +26 -25
  16. package/pipeline/schemas/prefs.schema.json +2 -2
  17. package/pipeline/scripts/fixtures/install-layout.tsv +11 -11
  18. package/pipeline/scripts/smoke-issue-comment-template.sh +1 -1
  19. package/pipeline/scripts/smoke-personal-data.sh +5 -3
  20. package/pipeline/scripts/smoke-plan-todos.sh +5 -2
  21. package/pipeline/scripts/smoke-sync-adapters.sh +113 -0
  22. package/pipeline/scripts/smoke-sync-delegation.sh +1 -1
  23. package/pipeline/scripts/smoke-url-enrichment.sh +1 -1
  24. package/pipeline/scripts/sync-adapters.mjs +156 -0
  25. package/pipeline/skills/figma-common/figma-component-confluence-sync/SKILL.md +1 -1
  26. package/pipeline/skills/figma-common/figma-issue/SKILL.md +5 -5
  27. package/pipeline/skills/figma-common/figma-setup/SKILL.md +17 -17
  28. package/pipeline/skills/figma-common/figma-validate/SKILL.md +1 -1
  29. package/pipeline/skills/figma-ios/figma-to-component/SKILL.md +1 -1
  30. package/pipeline/skills/figma-ios/figma-to-component/phases/phase-6-code-connect.md +5 -5
  31. package/pipeline/skills/figma-ios/figma-to-component/reference/code-connect.md +1 -1
  32. package/pipeline/skills/figma-ios/figma-to-component/reference/rest-api-script.md +1 -1
  33. package/pipeline/skills/figma-ios/figma-to-component/reference/tools.md +1 -1
  34. package/pipeline/skills/figma-ios/figma-to-component/scripts/phase1-gather.py +1 -1
  35. package/pipeline/skills/shared/core/multi-agent-issue/SKILL.md +1 -1
  36. package/pipeline/scripts/.last-figma-sync-plan.json +0 -23
@@ -38,12 +38,12 @@ JIRA_ISSUE_TYPE = Task
38
38
  Jira token is stored in macOS Keychain under service name `JIRA_TOKEN`:
39
39
 
40
40
  ```bash
41
- JIRA_TOKEN=$(security find-generic-password -a "$USER" -s "JIRA_TOKEN" -w 2>/dev/null)
41
+ JIRA_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)
42
42
  ```
43
43
 
44
44
  If not found, prompt the user to add it:
45
45
  ```bash
46
- security add-generic-password -a "$USER" -s "JIRA_TOKEN" -w "<PAT>"
46
+ "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\"
47
47
  ```
48
48
 
49
49
  ### Project Field IDs
@@ -540,7 +540,7 @@ Read the issue body and check the `### Jira Issue` section for a linked key.
540
540
  If a Jira key is found (not `_No response_`):
541
541
 
542
542
  ```bash
543
- JIRA_TOKEN=$(security find-generic-password -a "$USER" -s "JIRA_TOKEN" -w 2>/dev/null)
543
+ JIRA_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)
544
544
  USERNAME=$(curl -s "${JIRA_BASE_URL}/rest/api/2/myself" \
545
545
  -H "Authorization: Bearer ${JIRA_TOKEN}" | python3 -c "import sys,json; print(json.load(sys.stdin)['name'])")
546
546
 
@@ -592,7 +592,7 @@ gh api graphql -f query='mutation { updateProjectV2ItemFieldValue(input: { proje
592
592
  ### STEP 3 — Update Jira Description with GitHub Link
593
593
 
594
594
  ```bash
595
- JIRA_TOKEN=$(security find-generic-password -a "$USER" -s "JIRA_TOKEN" -w 2>/dev/null)
595
+ JIRA_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)
596
596
 
597
597
  # Get current Jira description
598
598
  JIRA_DESC=$(curl -s "${JIRA_BASE_URL}/rest/api/2/issue/<JIRA_KEY>?fields=description" \
@@ -739,7 +739,7 @@ Print as a table.
739
739
  - **Invalid phase**: Print valid options: `implementation`, `testing`, `code-connect`, `documentation`.
740
740
  - **Duplicate issue**: Print existing issue link and stop — do not create.
741
741
  - **GraphQL errors**: Print the error message from the API response.
742
- - **Jira token not found**: Prompt user to add to keychain: `security add-generic-password -a "$USER" -s "JIRA_TOKEN" -w "YOUR_PAT"`.
742
+ - **Jira token not found**: Prompt user to add to keychain: `"$HOME/.claude/lib/credential-store.sh" set \1 \"\2\"`.
743
743
  - **Jira API error (401/403)**: Token expired or invalid — prompt user to update keychain.
744
744
  - **Jira API error (404)**: Wrong issue key — print error and continue.
745
745
  - **Jira VPN not reachable**: Print warning, skip Jira steps, continue with GitHub-only operations.
@@ -115,13 +115,13 @@ Scripts like `remote-mcp-fetch.py` need the MCP OAuth token to call remote MCP o
115
115
  #### 3b-a. Check if token already exists and works
116
116
 
117
117
  ```bash
118
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w 2>/dev/null) && [ -n "$TOKEN" ] && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
118
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null) && [ -n "$TOKEN" ] && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
119
119
  ```
120
120
 
121
121
  If TOKEN_EXISTS, verify it works:
122
122
 
123
123
  ```bash
124
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w 2>/dev/null) && curl -s -o /dev/null -w "%{http_code}" -X POST "https://mcp.figma.com/mcp" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "Authorization: Bearer $TOKEN" -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"setup-check","version":"1.0.0"},"protocolVersion":"2025-03-26"},"id":1}'
124
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null) && curl -s -o /dev/null -w "%{http_code}" -X POST "https://mcp.figma.com/mcp" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "Authorization: Bearer $TOKEN" -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"setup-check","version":"1.0.0"},"protocolVersion":"2025-03-26"},"id":1}'
125
125
  ```
126
126
 
127
127
  - `200` → PASS, token is valid
@@ -150,7 +150,7 @@ else:
150
150
  #### 3b-c. If extraction succeeded — save to keychain
151
151
 
152
152
  ```bash
153
- TOKEN="<extracted_token>" && security delete-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" >/dev/null 2>&1; security add-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w "$TOKEN" >/dev/null 2>&1 && echo "MCP_TOKEN_STORED" || echo "MCP_TOKEN_STORE_FAILED"
153
+ TOKEN="<extracted_token>" && "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "MCP_TOKEN_STORED" || echo "MCP_TOKEN_STORE_FAILED"
154
154
  ```
155
155
 
156
156
  **IMPORTANT:** Do NOT echo the token in chat. Capture the python3 output into a variable directly:
@@ -161,7 +161,7 @@ import subprocess, os, re
161
161
  raw = subprocess.check_output(['security', 'find-generic-password', '-s', 'Claude Code-credentials', '-a', os.environ['USER'], '-w'], stderr=subprocess.DEVNULL).decode()
162
162
  match = re.search(r'\"figma-remote\|[^\\\"]+\":\{[^}]*\"accessToken\":\"([^\\\"]+)\"', raw)
163
163
  print(match.group(1) if match else '')
164
- " 2>/dev/null) && [ -n "$MCP_TOKEN" ] && security delete-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" >/dev/null 2>&1; security add-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w "$MCP_TOKEN" >/dev/null 2>&1 && echo "MCP_TOKEN_STORED" || echo "MCP_TOKEN_STORE_FAILED"
164
+ " 2>/dev/null) && [ -n "$MCP_TOKEN" ] && "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "MCP_TOKEN_STORED" || echo "MCP_TOKEN_STORE_FAILED"
165
165
  ```
166
166
 
167
167
  Then verify (repeat 3b-a verification curl).
@@ -186,13 +186,13 @@ Record as `skipped`. Scripts will fall back to extracting at runtime (slower but
186
186
  #### 4a. Check if token already exists
187
187
 
188
188
  ```bash
189
- security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
189
+ "$HOME/.claude/lib/credential-store.sh" get \1 >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
190
190
  ```
191
191
 
192
192
  #### 4b. If TOKEN_EXISTS — verify it works
193
193
 
194
194
  ```bash
195
- curl -s -o /dev/null -w "%{http_code}" -H "X-Figma-Token: $(security find-generic-password -a "$USER" -s 'FIGMA_ACCESS_TOKEN' -w 2>/dev/null)" "https://api.figma.com/v1/me"
195
+ curl -s -o /dev/null -w "%{http_code}" -H "X-Figma-Token: $("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)" "https://api.figma.com/v1/me"
196
196
  ```
197
197
 
198
198
  - `200` → PASS, token is valid
@@ -215,7 +215,7 @@ Ask: "Confirm when the token is copied to your clipboard."
215
215
  After user confirms, run this SINGLE command:
216
216
 
217
217
  ```bash
218
- security delete-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" >/dev/null 2>&1; security add-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w "$(pbpaste)" >/dev/null 2>&1 && echo "TOKEN_STORED" || echo "TOKEN_STORE_FAILED"
218
+ "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "TOKEN_STORED" || echo "TOKEN_STORE_FAILED"
219
219
  ```
220
220
 
221
221
  Then immediately clear clipboard:
@@ -231,7 +231,7 @@ Then verify (repeat 4b). If still failing → HALT.
231
231
  ### CHECK 5: Figma API User
232
232
 
233
233
  ```bash
234
- security find-generic-password -a "$USER" -s "FIGMA_API_USER" -w >/dev/null 2>&1 && echo "USER_EXISTS" || echo "USER_MISSING"
234
+ "$HOME/.claude/lib/credential-store.sh" get \1 >/dev/null 2>&1 && echo "USER_EXISTS" || echo "USER_MISSING"
235
235
  ```
236
236
 
237
237
  **If USER_MISSING:**
@@ -241,7 +241,7 @@ Ask: "What is your Figma account email address?"
241
241
  After user provides email:
242
242
 
243
243
  ```bash
244
- security delete-generic-password -a "$USER" -s "FIGMA_API_USER" >/dev/null 2>&1; security add-generic-password -a "$USER" -s "FIGMA_API_USER" -w "<EMAIL>" >/dev/null 2>&1 && echo "USER_STORED" || echo "USER_STORE_FAILED"
244
+ "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "USER_STORED" || echo "USER_STORE_FAILED"
245
245
  ```
246
246
 
247
247
  ---
@@ -330,14 +330,14 @@ If `INSUFFICIENT_SCOPES` error mentioning `project`:
330
330
  ### CHECK 9: Jira Token
331
331
 
332
332
  ```bash
333
- security find-generic-password -a "$USER" -s "JIRA_TOKEN" -w >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
333
+ "$HOME/.claude/lib/credential-store.sh" get \1 >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
334
334
  ```
335
335
 
336
336
  #### 9a. If TOKEN_EXISTS — verify
337
337
 
338
338
  ```bash
339
339
  curl -s -o /dev/null -w "%{http_code}" "{jira.baseUrl}/rest/api/2/myself" \
340
- -H "Authorization: Bearer $(security find-generic-password -a '$USER' -s 'JIRA_TOKEN' -w 2>/dev/null)"
340
+ -H "Authorization: Bearer $("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)"
341
341
  ```
342
342
 
343
343
  - `200` → PASS
@@ -357,7 +357,7 @@ Tell the user:
357
357
  Ask: "Confirm when token is copied to clipboard."
358
358
 
359
359
  ```bash
360
- security delete-generic-password -a "$USER" -s "JIRA_TOKEN" >/dev/null 2>&1; security add-generic-password -a "$USER" -s "JIRA_TOKEN" -w "$(pbpaste)" >/dev/null 2>&1 && echo "TOKEN_STORED" || echo "TOKEN_STORE_FAILED"
360
+ "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "TOKEN_STORED" || echo "TOKEN_STORE_FAILED"
361
361
  ```
362
362
 
363
363
  Clear clipboard:
@@ -372,7 +372,7 @@ Verify (repeat 9a). If VPN not connected, accept as `pass (stored, not verified)
372
372
  ### CHECK 10: Confluence Token
373
373
 
374
374
  ```bash
375
- security find-generic-password -a "$USER" -s "CONFLUENCE_TOKEN" -w >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
375
+ "$HOME/.claude/lib/credential-store.sh" get \1 >/dev/null 2>&1 && echo "TOKEN_EXISTS" || echo "TOKEN_MISSING"
376
376
  ```
377
377
 
378
378
  Same flow as CHECK 9 but for Confluence:
@@ -419,7 +419,7 @@ Looks up the Figma remote MCP OAuth token (`figu_` prefix) and prints it for the
419
419
  1. **Keychain `FIGMA_MCP_TOKEN`** — the dedicated keychain entry saved by `save-token` or CHECK 3b.
420
420
 
421
421
  ```bash
422
- security find-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w 2>/dev/null
422
+ "$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null
423
423
  ```
424
424
 
425
425
  2. **Claude Code credentials** — if not in dedicated keychain, extract from Claude Code's credential store.
@@ -484,14 +484,14 @@ Then clear clipboard: `pbcopy < /dev/null`
484
484
  3. **Save to keychain:**
485
485
 
486
486
  ```bash
487
- security delete-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" >/dev/null 2>&1
488
- security add-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w "$MCP_TOKEN" >/dev/null 2>&1 && echo "TOKEN_SAVED" || echo "TOKEN_SAVE_FAILED"
487
+ "$HOME/.claude/lib/credential-store.sh" delete \1 >/dev/null 2>&1
488
+ "$HOME/.claude/lib/credential-store.sh" set \1 \"\2\" >/dev/null 2>&1 && echo "TOKEN_SAVED" || echo "TOKEN_SAVE_FAILED"
489
489
  ```
490
490
 
491
491
  4. **Verify** the saved token works:
492
492
 
493
493
  ```bash
494
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_MCP_TOKEN" -w 2>/dev/null) && curl -s -o /dev/null -w "%{http_code}" -X POST "https://mcp.figma.com/mcp" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "Authorization: Bearer $TOKEN" -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"setup-check","version":"1.0.0"},"protocolVersion":"2025-03-26"},"id":1}'
494
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null) && curl -s -o /dev/null -w "%{http_code}" -X POST "https://mcp.figma.com/mcp" -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "Authorization: Bearer $TOKEN" -d '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"clientInfo":{"name":"setup-check","version":"1.0.0"},"protocolVersion":"2025-03-26"},"id":1}'
495
495
  ```
496
496
 
497
497
  - `200` → print "Token saved and verified."
@@ -557,7 +557,7 @@ These are logged but do NOT affect the VALID/INVALID verdict:
557
557
  | Registry file not found | Show command: `cd ${COMMON_PATH} && swift build --product FigmaRegistryUtility && .build/debug/FigmaRegistryUtility update` |
558
558
  | FigmaRegistryUtility not built | Show: `cd ${COMMON_PATH} && swift build --product FigmaRegistryUtility` |
559
559
  | Invalid URL format | Ask user for correct URL via AskUserQuestion |
560
- | Figma token not found | Show: `security add-generic-password -s "FIGMA_ACCESS_TOKEN" -w "<YOUR_TOKEN>"` |
560
+ | Figma token not found | Show: `"$HOME/.claude/lib/credential-store.sh" set FIGMA_ACCESS_TOKEN "<YOUR_TOKEN>"` |
561
561
 
562
562
  ---
563
563
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: figma
2
+ name: figma-to-component
3
3
  description: Figma-to-SwiftUI component implementation workflow. Takes a Figma URL and produces a production-ready SwiftUI component through 8 phases — data gathering, analysis, code generation, testing, Code Connect, and documentation.
4
4
  user-invocable: true
5
5
  argument-hint: <figma-url> | phase-<N> | status
@@ -46,7 +46,7 @@ Requires Swift 6.0+ (Xcode 16.0+). Lower version → HALT.
46
46
  ### 3. Verify Token
47
47
 
48
48
  ```bash
49
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w 2>/dev/null) && echo "OK" || echo "MISSING"
49
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null) && echo "OK" || echo "MISSING"
50
50
  ```
51
51
 
52
52
  | Result | Action |
@@ -57,7 +57,7 @@ TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w 2>/
57
57
  **CRITICAL — Token prefix check:**
58
58
 
59
59
  ```bash
60
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w 2>/dev/null)
60
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1 2>/dev/null)
61
61
  if [[ "$TOKEN" == figd_* ]]; then
62
62
  echo "VALID_PAT"
63
63
  elif [[ "$TOKEN" == figu_* ]]; then
@@ -70,7 +70,7 @@ fi
70
70
  | Result | Action |
71
71
  |--------|--------|
72
72
  | `VALID_PAT` | Proceed — this is a Figma Personal Access Token |
73
- | `WRONG_TOKEN_TYPE` | **HALT** — `figu_` prefix = MCP OAuth token. This token does NOT work with Code Connect CLI (returns 403). The `FIGMA_ACCESS_TOKEN` keychain entry contains an MCP token instead of a PAT. User must save a valid PAT: `security add-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w "<figd_...token>"` |
73
+ | `WRONG_TOKEN_TYPE` | **HALT** — `figu_` prefix = MCP OAuth token. This token does NOT work with Code Connect CLI (returns 403). The `FIGMA_ACCESS_TOKEN` keychain entry contains an MCP token instead of a PAT. User must save a valid PAT: `"$HOME/.claude/lib/credential-store.sh" set \1 \"\2\"` |
74
74
  | `UNKNOWN_TOKEN` | Proceed with caution, verify publish output for 403 errors |
75
75
 
76
76
  **Do NOT use `FIGMA_MCP_TOKEN`** for Code Connect. MCP OAuth tokens (`figu_*`) lack the scopes needed by the Code Connect REST API.
@@ -314,7 +314,7 @@ bash .instructions/figma/figma-to-swiftui/scripts/validate-phase6.sh \
314
314
  ## GATE 4: VALIDATE
315
315
 
316
316
  ```bash
317
- export FIGMA_ACCESS_TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w)
317
+ export FIGMA_ACCESS_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1)
318
318
  figma connect parse
319
319
  ```
320
320
 
@@ -352,7 +352,7 @@ USER_ACTION_REQUIRED: Options:
352
352
  ### 5.1 Set Token
353
353
 
354
354
  ```bash
355
- export FIGMA_ACCESS_TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w)
355
+ export FIGMA_ACCESS_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1)
356
356
  ```
357
357
 
358
358
  ### 5.2 Publish via Wrapper Script
@@ -474,7 +474,7 @@ Auth: set `FIGMA_ACCESS_TOKEN` env var, or use `--token=YOUR_TOKEN` flag.
474
474
 
475
475
  Keychain retrieve:
476
476
  ```bash
477
- export FIGMA_ACCESS_TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w)
477
+ export FIGMA_ACCESS_TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1)
478
478
  ```
479
479
 
480
480
  All commands work with npx: `npx @figma/code-connect@latest connect <command>`
@@ -8,7 +8,7 @@ How the Phase 1 script (`scripts/phase1-gather.py`) uses the Figma REST API for
8
8
 
9
9
  ```bash
10
10
  # Token stored in macOS Keychain by /figma-setup (CHECK 4)
11
- TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w)
11
+ TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1)
12
12
  ```
13
13
 
14
14
  ```python
@@ -142,7 +142,7 @@ Header: X-Figma-Token: figd_your_token_here
142
142
 
143
143
  **Retrieve token from macOS Keychain:**
144
144
  ```bash
145
- export TOKEN=$(security find-generic-password -a "$USER" -s "FIGMA_ACCESS_TOKEN" -w)
145
+ export TOKEN=$("$HOME/.claude/lib/credential-store.sh" get \1)
146
146
  curl -H "X-Figma-Token: $TOKEN" "https://api.figma.com/v1/..."
147
147
  ```
148
148
 
@@ -1100,7 +1100,7 @@ def main():
1100
1100
  ).decode().strip()
1101
1101
  except (subprocess.CalledProcessError, KeyError):
1102
1102
  halt("PRE_CHECK", "FIGMA_ACCESS_TOKEN not found", [], [],
1103
- "Pass --figma-token or: security add-generic-password -a $USER -s FIGMA_ACCESS_TOKEN -w <token>")
1103
+ "Pass --figma-token or: "$HOME/.claude/lib/credential-store.sh" set \1 \2
1104
1104
 
1105
1105
  # Resolve MCP OAuth token (for remote MCP)
1106
1106
  MCP_TOKEN = get_mcp_token(args.mcp_token)
@@ -19,7 +19,7 @@ Unassigned GitHub issue'ları interactive olarak listele, seçtir ve pipeline'a
19
19
  - `my-figma-app` → `my-org/my-figma-app`
20
20
  - Başka → kullanıcıya repo sor
21
21
 
22
- 2. **gh auth switch** — İş reposu ise `M-ERDEN3_tkgithub`'a geç
22
+ 2. **gh auth switch** — İş reposu ise `prefs.global.accounts[]` içindeki work account label'ına geç (`gh auth switch --user {work-label}`)
23
23
 
24
24
  3. **Issue'ları çek** — `gh issue list --state open --assignee "" --json number,title,labels --limit 50`
25
25
  - `implemented` veya `in progress` label'lı olanları filtrele
@@ -1,23 +0,0 @@
1
- {
2
- "source": { "path": "/Users/M_ERDEN3/turkish-airlines-ios-figma", "branch": "develop", "commit": "6702673562d797e5bb77364922f211a4b5d5c0ae", "lastCommit": "cd0cde2f25abbc2524f3f20407d8c0d9ff6c2245" },
3
- "summary": { "changedSkills": 12 },
4
- "changes": [
5
- { "upstream": "figma-cli-iterate", "local": "figma-cli-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
6
- { "upstream": "figma-cli-lean-iterate", "local": "figma-cli-lean-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
7
- { "upstream": "figma-form-integration", "local": "figma-form-integration", "tree": "figma-common", "renamed": false, "overlaySkip": false },
8
- { "upstream": "figma-issue", "local": "figma-issue", "tree": "figma-common", "renamed": false, "overlaySkip": false },
9
- { "upstream": "figma-iterate", "local": "figma-iterate", "tree": "figma-common", "renamed": false, "overlaySkip": false },
10
- { "upstream": "figma-iteration-commit", "local": "figma-iteration-commit", "tree": "figma-common", "renamed": false, "overlaySkip": false },
11
- { "upstream": "figma-to-swift-ui-implement", "local": "figma-component-implement", "tree": "figma-ios", "renamed": true, "overlaySkip": true },
12
- { "upstream": "figma-to-swift-ui-start", "local": "figma-component-start", "tree": "figma-common", "renamed": true, "overlaySkip": false },
13
- { "upstream": "figma-to-swiftui", "local": "figma-to-component", "tree": "figma-ios", "renamed": true, "overlaySkip": false },
14
- { "upstream": "figma-ui-patterns", "local": "figma-ui-patterns", "tree": "figma-common", "renamed": false, "overlaySkip": false },
15
- { "upstream": "performance-swiftui", "local": "performance-swiftui", "tree": "figma-common", "renamed": false, "overlaySkip": false },
16
- { "upstream": "performance-tour", "local": "performance-tour", "tree": "figma-common", "renamed": false, "overlaySkip": false }
17
- ],
18
- "postActions": [
19
- "run `npm run test:smoke` — all 28 suites must stay green",
20
- "review figma-ios/REVIEW_CHECKLIST.md for skills still WIP",
21
- "commit with \"chore(sync): upstream @ 6702673562d797e5bb77364922f211a4b5d5c0ae\""
22
- ]
23
- }