Skip to content
Back to skills

Tf Sync

ASecurity

Sync the current code state with Marblo tickets — catch missed updates and bring tickets up to date.

  • 8 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 1, 2026
ai-agentsgobashgitapifrontendbackend

Works with

  • claude code
  • api
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 1, 2026

npx -y skills add marblo-app/marblo --skill tf-sync --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tf Sync?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tf Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/marblo-app-tf-sync/badge)](https://www.skillsdirectory.com/skills/marblo-app-tf-sync)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: tf-sync
description: Sync the current code state with Marblo tickets — catch missed updates and bring tickets up to date.
disable-model-invocation: true
allowed-tools: Bash, Read, Glob, Grep
---

# Marblo Ticket Sync

> When an agent coded without updating its tickets,
> reconcile the actual code state with the ticket state.

---

## ⛔ Required rule: Marblo MCP only

> **Never use the Claude Code built-in tools (TaskCreate, TaskList, TaskUpdate, TaskGet).**
> Task lookup/status-change/logging MUST use the **Marblo MCP tools**:
> `get_all_tasks`, `update_task_status`, `add_activity`, `submit_for_review`, `claim_task`

---

## When to use

- An agent wrote code but didn't `add_activity` or `submit_for_review`
- You coded directly but forgot to update the ticket
- The session was cut off midway so the ticket state doesn't match reality
- You want to check "do the tickets match the actual progress right now?"

---

## Step 1: Collect the current state

Check two things at once:

### 1-1. Marblo ticket status

Use `get_all_tasks` to fetch all tasks.
Organize each task's status, scope (file paths), and last activity.

### 1-2. Actual code state

Check whether the files listed in each task's scope actually exist:

- Does the file exist?
- Was it modified recently? (`git diff`, `git log`)
- Is there a test file?

---

## Step 2: Detect mismatches

Compare ticket state vs. actual code to find mismatches:

### Detection patterns

```
🔍 Mismatch detection result:
━━━━━━━━━━━━━━━━━━

⚠️ Code exists but ticket is TODO:
   TASK-003: AI summary API
   → backend/routes/summarize.py already exists (87 lines)
   → tests/test_summarize.py already exists (3 tests)
   → Recommend: update to IN_PROGRESS or REVIEW

⚠️ Ticket is IN_PROGRESS but no activity log:
   TASK-004: URL input screen
   → Last activity: none
   → frontend/components/UrlInput.tsx exists (42 lines)
   → Recommend: record current state with add_activity

⚠️ Ticket is IN_PROGRESS but code is complete:
   TASK-002: User API
   → backend/routes/users.py exists + tests pass
   → Recommend: submit_for_review

✅ OK:
   TASK-001: DB schema — DONE, models.py exists
   TASK-005: Insight card — TODO, no file (not started yet)
```

---

## Step 3: Run the sync

Show the mismatch list to the user and handle them one at a time:

### 3-1. Present options for each mismatch

```
TASK-003: AI summary API (current: TODO → code already exists)

  1. Update to REVIEW (code complete)
  2. Update to IN_PROGRESS (still in progress)
  3. Add an activity log only (keep status)
  4. Skip

  How would you like to proceed?
```

### 3-2. Execute per choice

- **Update to REVIEW:**

  1. `update_task_status` → IN_PROGRESS (can't go straight from TODO to REVIEW)
  2. `add_activity`: "Sync: code already complete — [file list]"
  3. `submit_for_review`

- **Update to IN_PROGRESS:**

  1. `claim_task` (if TODO)
  2. `update_task_status` → IN_PROGRESS
  3. `add_activity`: "Sync: work in progress — [current state]"

- **Add activity log only:**
  1. `add_activity`: "Sync: confirmed [file] exists, [current state summary]"

---

## Step 4: Summarize the sync result

```
🔄 Sync complete
━━━━━━━━━━━━━

  Updated:        3
  Skipped:        1
  Already OK:     4

  Current state:
  ✅ DONE:        2
  👀 REVIEW:      2  ← needs review!
  🔄 IN_PROGRESS: 1
  📋 TODO:        3

  💡 Next: handle 2 REVIEW with /tf-review
```

---

## Auto-detection criteria

| Ticket state | Code state                     | Verdict                         |
| ------------ | ------------------------------ | ------------------------------- |
| TODO         | no file                        | ✅ OK                           |
| TODO         | file exists                    | ⚠️ missed — needs update        |
| IN_PROGRESS  | file exists + has activity log | ✅ OK                           |
| IN_PROGRESS  | file exists + no activity log  | ⚠️ missing log                  |
| IN_PROGRESS  | file exists + tests pass       | ⚠️ needs REVIEW submission      |
| REVIEW       | file exists                    | ✅ OK                           |
| DONE         | file exists                    | ✅ OK                           |
| DONE         | no file                        | ⚠️ code deleted? needs checking |

Files in this skill

  • COMMAND.md227 B
  • README.md2.9 KB
  • SKILL.md4.3 KB
  • marblo.yaml1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.