Skip to content

Markers Reference

Complete reference for all markers recognized by Reviewflow.

Overview

Markers are special tags in skill output that communicate with the automation server. They are parsed after Claude CLI completion and trigger various actions.

General Format: [MARKER_TYPE:param1:param2:...]

Progress Markers

[PROGRESS:agent:status]

Track individual agent progress for real-time dashboard updates.

ParameterTypeDescription
agentstringAgent name (kebab-case, e.g., clean-architecture)
statusenumOne of: started, completed, failed
errorstring(Optional) Error message when status is failed

Examples:

[PROGRESS:security:started]
[PROGRESS:security:completed]
[PROGRESS:security:failed:Connection timeout]

Behavior:

  • Unknown agents are dynamically added to the dashboard
  • Agent names are converted to Title Case for display
  • Progress percentage is calculated based on completed/total agents

Dashboard Display:

┌────────────────────────────────────┐
│ Security        [████████░░] 80%   │
│ Architecture    [██████████] 100%  │
│ Testing         [░░░░░░░░░░] 0%    │
└────────────────────────────────────┘

Phase Markers

[PHASE:phase-name]

Indicate the current review phase.

ParameterTypeDescription
phase-nameenumCurrent phase identifier

Valid Phases:

PhaseDescription
initializingReview setup (loading config, fetching MR data)
agents-runningIndividual agents analyzing code
synthesizingCombining agent results into final report
publishingPosting results to platform
completedReview finished

Examples:

[PHASE:initializing]
[PHASE:agents-running]
[PHASE:synthesizing]
[PHASE:publishing]
[PHASE:completed]

Behavior:

  • Phase changes are broadcast via WebSocket to connected dashboards
  • Duplicate phase markers are ignored (no event emitted)

Statistics Markers

[REVIEW_STATS:blocking=N:warnings=N:suggestions=N:score=N]

Report review statistics for metrics and tracking.

ParameterTypeDescription
blockingintegerNumber of blocking issues (must fix)
warningsintegerNumber of warnings (should fix)
suggestionsintegerNumber of suggestions (nice to have)
scorefloatOverall score out of 10 (e.g., 7.5)

Example:

[REVIEW_STATS:blocking=2:warnings=5:suggestions=3:score=7.5]

Behavior:

  • Stats are saved to .claude/reviews/stats.json
  • Used for project-level metrics and trends
  • Only one REVIEW_STATS marker is processed per review

Alternative Format (Fallback):

If no [REVIEW_STATS:...] marker is found, the parser falls back to French summary format:

📊 Score global : 7.5/10
🚨 Bloquants : 2
⚠️ Importants : 5
📝 Améliorations : 3

Or inline emoji markers (counted):

🚨 [BLOQUANT] Issue description
⚠️ [IMPORTANT] Warning description
💡 [SUGGESTION] Suggestion description

Thread Action Markers

These markers trigger platform API calls after review completion.

MCP equivalent: These actions can also be performed via MCP tools using add_action. See MCP Tools Reference for the structured alternative.

[THREAD_REPLY:threadId:message]

Reply to an existing discussion thread. The message is everything after the second :, so colons in the message are preserved.

[THREAD_REPLY:abc123:Fixed - Added proper error handling]

[THREAD_RESOLVE:threadId]

Resolve/close a discussion thread.

[THREAD_RESOLVE:abc123def456]

[POST_COMMENT:message]

Post a top-level comment on the MR/PR. Use \n for newlines.

[POST_COMMENT:## Review Complete\n\nAll issues addressed.]

[FETCH_THREADS]

Reserved for syncing thread state (currently a no-op).

Platform Execution

MarkerGitLabGitHub
THREAD_REPLYglab api POST .../discussions/{id}/notesgh api POST .../comments/{id}/replies
THREAD_RESOLVEglab api PUT .../discussions/{id} resolved=truegh api graphql resolveReviewThread
POST_COMMENTglab api POST .../notesgh api POST .../issues/{pr}/comments

Behavior:

  • Currently a no-op (placeholder for future implementation)
  • Reserved for syncing thread state before processing

Thread ID Formats

PlatformSourceID FormatCLI to fetch
GitLabDiscussions APIabc123def456789glab api "projects/GROUP%2FPROJECT/merge_requests/123/discussions"
GitHubGraphQL node IDsPRRT_kwDOAbc123XYZgh api graphql with reviewThreads query

Execution Order

Thread action markers are executed in order of appearance. Common pattern: reply then resolve.

[THREAD_REPLY:abc123:Fixed in commit def456]
[THREAD_RESOLVE:abc123]

Error Handling

Errors (invalid thread ID, network timeout, auth failure) are logged but do not stop subsequent actions. Malformed markers (missing parameters, unknown types) are silently ignored.


Best Practices

  1. Always include REVIEW_STATS: Required for metrics tracking
  2. Use descriptive messages: Thread replies should explain what was fixed
  3. Reply before resolving: Post a summary before closing threads
  4. Handle special characters: Use \n for newlines in messages
  5. Test markers locally: Run your skill and grep for \[ to verify markers

Released under the MIT License.