User Confirmation Process in Stage 0 and Stage 1.5 of cangjie-skill: Complete Workflow Guide

The cangjie-skill repository implements explicit, user-driven confirmation checkpoints at Stage 0 (Operation) and Stage 1.5 (Initial Specification) where users must actively approve or reject proposed skills through structured prompts before any workflow progression occurs.

The cangjie-skill project orchestrates a multi-stage pipeline for skill generation that prioritizes human oversight at critical decision points. This guide examines the exact mechanisms, source files, and code patterns that enforce these confirmation gates.


What Is the User Confirmation Process?

The user confirmation process consists of mandatory approval steps that prevent automated progression without explicit human consent. In cangjie-skill, this process spans two distinct phases: Stage 1.5 (the specification review) and Stage 0 (the final skill approval). Each stage employs different interaction patterns tailored to the maturity of the deliverable.


Stage 1.5 Confirmation: Specification Review

Purpose and Trigger

Stage 1.5 operates as a substage of the knowledge extraction phase, transforming raw extracted content into a formal skill specification document. This represents the first structured definition that users evaluate.

Confirmation Mechanism

The system delivers a Markdown-formatted specification document through one of two channels:

  • Web form interface for direct user interaction
  • GitHub Pull Request comment thread for version-controlled review

Users must explicitly signal approval by typing /confirm in the designated response area. The system captures:

  • Timestamp of confirmation
  • User identifier for audit trails

This logging ensures complete traceability of every approval decision.

Source Documentation

The complete specification for this stage resides in methodology/03-stage1.5-triple-verify.md, which details the triple-verification logic preceding user confirmation and the exact /confirm command protocol.

Implementation Pattern


# Pull-request based confirmation (Stage 1.5)

def post_specification_pr(spec_md):
    pr = github_api.create_pr(
        title="Skill Specification – Please Confirm",
        body=spec_md,
        base="main",
        head="specification-branch"
    )
    # PR template instructs reviewer to comment `/confirm`

    return pr

def check_confirmation(pr):
    comments = github_api.list_comments(pr.number)
    if any("/confirm" in c.body.lower() for c in comments):
        advance_to_stage_o()
    else:
        request_revision()

Stage 0 Confirmation: Final Skill Approval

Purpose and Trigger

Stage 0 activates after parallel knowledge extraction and triple-verification complete. The system prepares a proposed skill ready for delivery—but requires explicit release authorization.

Confirmation Mechanism

The system transmits a direct confirmation message through the configured communication channel (Slack, WeChat, or email). The message contains:

  • Concise skill outline summary
  • Binary Yes/No prompt

Only an affirmative "Yes" response advances the workflow to the pressure-test stage. Negative or ambiguous responses trigger revision loops.

Response Protocol

User Response System Action
"Yes" or ✅ emoji Proceed to pressure-test stage
"No", revision request, or non-response Return to extraction/refinement

Source Documentation

The Stage 0 protocol is fully documented in methodology/04-stage2-ria-plus.md, which specifies the confirmation message format and channel integration requirements.

Implementation Pattern


# Sending confirmation message (Stage 0)

def send_confirmation(user_id, skill_summary):
    msg = f"""\
Hi <@{user_id}>,

Here is the proposed skill outline:
{skill_summary}

Please confirm:
✅ Yes, proceed
❌ No, revise
"""
    slack_api.post_message(channel=user_id, text=msg)

# Handling user response

def handle_response(event):
    if event.text.lower() in ("yes", "✅"):
        proceed_to_pressure_test()
    else:
        restart_extraction()

Comparison: Stage 1.5 vs. Stage 0 Confirmation

Aspect Stage 1.5 (Initial Specification) Stage 0 (Operation)
Deliverable Formal Markdown specification Proposed skill outline
Channel Web form or GitHub PR Slack, WeChat, email
Approval Command /confirm comment "Yes" or ✅ emoji
Traceability Timestamp + user ID logged Response recorded in workflow
Failure Action Request revision Restart extraction

Key Source Files

File Path Role in Confirmation Process
methodology/03-stage1.5-triple-verify.md Defines Stage 1.5 specification review and /confirm workflow
methodology/04-stage2-ria-plus.md Documents Stage 0 confirmation message and Yes/No prompt protocol
scripts/generate_star_history.py Utility demonstrating confirmation flag logging patterns
SKILL.md Final output template produced after successful confirmations

Summary

  • Stage 1.5 confirmation requires users to comment /confirm on a specification document, with full audit logging.
  • Stage 0 confirmation demands an explicit "Yes" response to a delivered skill outline before pressure-testing begins.
  • Both stages implement loop-back mechanics that return to prior stages upon rejection or non-response.
  • The architecture enforces explicit over implicit consent at every critical transition.
  • Source documentation in methodology/ files provides authoritative protocol specifications.

Frequently Asked Questions

What happens if a user doesn't respond to a confirmation request?

The workflow pauses indefinitely at the confirmation checkpoint. No automated timeout proceeds to the next stage. The system maintains the current state until receiving an explicit response, or until an operator manually intervenes to cancel or restart the pipeline.

Can the confirmation channels be customized beyond Slack, WeChat, and email?

The source documentation in methodology/04-stage2-ria-plus.md specifies the three supported channels, but the modular architecture implied by the slack_api abstraction in code examples suggests that additional adapters could extend support to other messaging platforms.

Why does Stage 1.5 use /confirm while Stage 0 uses "Yes"?

The differing formality reflects deliverable maturity. Stage 1.5 handles technical specifications in structured environments (GitHub PRs) where slash commands are conventional. Stage 0 targets end-users in conversational channels where simple natural language responses reduce friction.

Where is confirmation data stored for compliance auditing?

The analysis indicates that Stage 1.5 logs timestamps and user identifiers, while the generate_star_history.py script demonstrates confirmation flag patterns. The exact persistence layer isn't specified in the methodology files, but the structured logging implies integration with the repository's workflow state management.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →