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
/confirmon 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →