@su-record/vibe 2.2.4 → 2.3.0
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.
- package/.claude/settings.json +0 -117
- package/.claude/settings.local.json +2 -1
- package/.claude/vibe/rules/languages/dart-flutter.md +509 -0
- package/.claude/vibe/rules/languages/go.md +396 -0
- package/.claude/vibe/rules/languages/java-spring.md +586 -0
- package/.claude/vibe/rules/languages/kotlin-android.md +491 -0
- package/.claude/vibe/rules/languages/python-django.md +371 -0
- package/.claude/vibe/rules/languages/python-fastapi.md +386 -0
- package/.claude/vibe/rules/languages/rust.md +425 -0
- package/.claude/vibe/rules/languages/swift-ios.md +516 -0
- package/.claude/vibe/rules/languages/typescript-nextjs.md +441 -0
- package/.claude/vibe/rules/languages/typescript-node.md +375 -0
- package/.claude/vibe/rules/languages/typescript-nuxt.md +521 -0
- package/.claude/vibe/rules/languages/typescript-react-native.md +446 -0
- package/.claude/vibe/rules/languages/typescript-react.md +525 -0
- package/.claude/vibe/rules/languages/typescript-vue.md +353 -0
- package/README.md +96 -96
- package/commands/vibe.analyze.md +14 -73
- package/commands/vibe.reason.md +49 -172
- package/commands/vibe.review.md +72 -260
- package/commands/vibe.utils.md +101 -0
- package/commands/vibe.verify.md +4 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +44 -14
- package/dist/cli/index.js.map +1 -1
- package/{templates/hooks-template.json → hooks/hooks.json} +6 -6
- package/package.json +2 -2
- package/commands/vibe.continue.md +0 -88
- package/commands/vibe.setup.md +0 -97
- /package/{templates → .claude/vibe/templates}/constitution-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/contract-backend-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/contract-frontend-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/feature-template.md +0 -0
- /package/{templates → .claude/vibe/templates}/spec-template.md +0 -0
- /package/{commands/vibe.compound.md → agents/compounder.md} +0 -0
- /package/{commands/vibe.diagram.md → agents/diagrammer.md} +0 -0
- /package/{commands/vibe.e2e.md → agents/e2e-tester.md} +0 -0
- /package/{commands/vibe.ui.md → agents/ui-previewer.md} +0 -0
package/commands/vibe.analyze.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Analyze project or specific feature/module
|
|
3
|
-
argument-hint: "feature-name" or --code or --deps or --arch
|
|
3
|
+
argument-hint: "feature-name" or --code or --deps or --arch
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /vibe.analyze
|
|
@@ -17,7 +17,7 @@ Analyze project or specific feature/module.
|
|
|
17
17
|
/vibe.analyze --arch # Architecture analysis only
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Context Reset
|
|
21
21
|
|
|
22
22
|
**When this command runs, previous conversation is ignored.**
|
|
23
23
|
- Explore and analyze code from scratch like new session
|
|
@@ -83,7 +83,7 @@ Read `CLAUDE.md`, `package.json`, `pyproject.toml`, etc. to identify tech stack:
|
|
|
83
83
|
#### 5. Output Analysis Results
|
|
84
84
|
|
|
85
85
|
```markdown
|
|
86
|
-
##
|
|
86
|
+
## [feature-name] Analysis Results
|
|
87
87
|
|
|
88
88
|
### Overview
|
|
89
89
|
- **Feature description**: [one-line summary]
|
|
@@ -107,24 +107,12 @@ Read `CLAUDE.md`, `package.json`, `pyproject.toml`, etc. to identify tech stack:
|
|
|
107
107
|
- Key fields: id, email, password_hash
|
|
108
108
|
- Relationships: Session (1:N)
|
|
109
109
|
|
|
110
|
-
### Flow Diagram
|
|
111
|
-
[Text-based flow description]
|
|
112
|
-
|
|
113
110
|
### Reference File List
|
|
114
111
|
- src/api/auth/router.py:L10-50
|
|
115
112
|
- src/services/auth_service.py:L1-100
|
|
116
113
|
```
|
|
117
114
|
|
|
118
|
-
#### 6.
|
|
119
|
-
|
|
120
|
-
Load related rules from `.claude/vibe/rules/`:
|
|
121
|
-
- `core/quick-start.md` - 5 core principles
|
|
122
|
-
- `standards/complexity-metrics.md` - Complexity standards
|
|
123
|
-
- `quality/checklist.md` - Quality checklist
|
|
124
|
-
|
|
125
|
-
Output any rule violations found.
|
|
126
|
-
|
|
127
|
-
#### 7. Complete
|
|
115
|
+
#### 6. Complete
|
|
128
116
|
|
|
129
117
|
After analysis:
|
|
130
118
|
1. Output analysis summary
|
|
@@ -133,7 +121,7 @@ After analysis:
|
|
|
133
121
|
|
|
134
122
|
---
|
|
135
123
|
|
|
136
|
-
## Mode 2: Project Quality Analysis (
|
|
124
|
+
## Mode 2: Project Quality Analysis (--code/--deps/--arch)
|
|
137
125
|
|
|
138
126
|
### Analysis Scope
|
|
139
127
|
|
|
@@ -142,22 +130,21 @@ After analysis:
|
|
|
142
130
|
- **--deps**: Dependency analysis only
|
|
143
131
|
- **--arch**: Architecture analysis only
|
|
144
132
|
|
|
145
|
-
###
|
|
133
|
+
### Code Quality Analysis (--code)
|
|
146
134
|
|
|
147
|
-
|
|
135
|
+
- Complexity analysis (Cyclomatic Complexity)
|
|
136
|
+
- Code quality validation
|
|
137
|
+
- Coupling/cohesion check
|
|
148
138
|
|
|
149
|
-
|
|
150
|
-
- `analyze_complexity`: Complexity analysis
|
|
151
|
-
- `validate_code_quality`: Code quality validation
|
|
152
|
-
- `check_coupling_cohesion`: Coupling/cohesion check
|
|
139
|
+
### Dependency Analysis (--deps)
|
|
153
140
|
|
|
154
|
-
#### Dependency Analysis (--deps)
|
|
155
141
|
- Read `package.json` / `pyproject.toml` / `pubspec.yaml`
|
|
156
142
|
- Analyze version conflicts, security vulnerabilities, packages needing updates
|
|
157
143
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
-
|
|
144
|
+
### Architecture Analysis (--arch)
|
|
145
|
+
|
|
146
|
+
- Find core modules
|
|
147
|
+
- Identify module dependencies
|
|
161
148
|
- Detect circular dependencies, layer violations
|
|
162
149
|
|
|
163
150
|
### Analysis Report
|
|
@@ -190,50 +177,4 @@ Based on `@su-record/hi-ai`:
|
|
|
190
177
|
|
|
191
178
|
---
|
|
192
179
|
|
|
193
|
-
## Example
|
|
194
|
-
|
|
195
|
-
### Feature Analysis
|
|
196
|
-
```
|
|
197
|
-
User: /vibe.analyze "login"
|
|
198
|
-
|
|
199
|
-
Claude: Analyzing login related code...
|
|
200
|
-
|
|
201
|
-
[Exploring code with Glob, Grep, Read tools]
|
|
202
|
-
|
|
203
|
-
📊 Login Analysis Results
|
|
204
|
-
|
|
205
|
-
### Overview
|
|
206
|
-
- Feature description: JWT-based user authentication
|
|
207
|
-
- Implementation status: Complete
|
|
208
|
-
- Related files: 8
|
|
209
|
-
|
|
210
|
-
### API Endpoints
|
|
211
|
-
| POST | /api/v1/auth/login | Login | - |
|
|
212
|
-
| POST | /api/v1/auth/refresh | Token refresh | Required |
|
|
213
|
-
|
|
214
|
-
[Analysis continues...]
|
|
215
|
-
|
|
216
|
-
What would you like me to help with?
|
|
217
|
-
- Refactoring
|
|
218
|
-
- Add new feature
|
|
219
|
-
- Bug fix
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### Quality Analysis
|
|
223
|
-
```
|
|
224
|
-
User: /vibe.analyze --code
|
|
225
|
-
|
|
226
|
-
Claude: Starting code quality analysis...
|
|
227
|
-
|
|
228
|
-
📊 Code Quality Score: 85/100 (B+)
|
|
229
|
-
|
|
230
|
-
**Key findings:**
|
|
231
|
-
- High complexity: src/service.py (CC: 15)
|
|
232
|
-
|
|
233
|
-
**Improvement suggestions:**
|
|
234
|
-
1. Split src/service.py into 3 modules
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
180
|
ARGUMENTS: $ARGUMENTS
|
package/commands/vibe.reason.md
CHANGED
|
@@ -5,7 +5,7 @@ argument-hint: "problem description"
|
|
|
5
5
|
|
|
6
6
|
# /vibe.reason
|
|
7
7
|
|
|
8
|
-
Apply 9-step reasoning framework to complex problems
|
|
8
|
+
Apply 9-step reasoning framework to complex problems.
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
@@ -13,35 +13,15 @@ Apply 9-step reasoning framework to complex problems (Reasoning Agent).
|
|
|
13
13
|
/vibe.reason "problem description"
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
## Description
|
|
17
|
-
|
|
18
|
-
Use systematic 9-step reasoning framework to logically analyze complex problems and derive optimal solutions.
|
|
19
|
-
|
|
20
16
|
## When to Use
|
|
21
17
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
2. **Architecture design decisions**
|
|
29
|
-
- Need to choose optimal option among several
|
|
30
|
-
- Need to comprehensively evaluate constraints and risks
|
|
31
|
-
|
|
32
|
-
3. **Performance optimization**
|
|
33
|
-
- Bottleneck may be in multiple places
|
|
34
|
-
- Need step-by-step optimization strategy
|
|
18
|
+
1. **Complex bug debugging** - Root cause unclear, need systematic hypothesis verification
|
|
19
|
+
2. **Architecture design decisions** - Choose optimal option among several
|
|
20
|
+
3. **Performance optimization** - Bottleneck may be in multiple places
|
|
21
|
+
4. **Refactoring planning** - Systematically analyze legacy code complexity
|
|
22
|
+
5. **Requirements analysis** - Reconcile conflicting requirements
|
|
35
23
|
|
|
36
|
-
|
|
37
|
-
- Need to systematically analyze legacy code complexity
|
|
38
|
-
- Need gradual refactoring strategy
|
|
39
|
-
|
|
40
|
-
5. **Requirements analysis**
|
|
41
|
-
- Need to reconcile conflicting requirements
|
|
42
|
-
- Need to discover missing requirements
|
|
43
|
-
|
|
44
|
-
## Process
|
|
24
|
+
## 9-Step Reasoning Framework
|
|
45
25
|
|
|
46
26
|
### 1. Logical Dependencies and Constraints
|
|
47
27
|
- Check policies, rules, prerequisites
|
|
@@ -89,17 +69,6 @@ Use in situations like:
|
|
|
89
69
|
- Document reasoning process for complex decisions
|
|
90
70
|
- Ensure safety through step-by-step execution
|
|
91
71
|
|
|
92
|
-
## MCP Tools Integration
|
|
93
|
-
|
|
94
|
-
This command automatically uses these MCP tools:
|
|
95
|
-
|
|
96
|
-
- **apply_reasoning_framework**: Apply 9-step reasoning framework
|
|
97
|
-
- **create_thinking_chain**: Create sequential thinking chain
|
|
98
|
-
- **analyze_problem**: Analyze problem root cause
|
|
99
|
-
- **step_by_step_analysis**: Detailed step-by-step analysis
|
|
100
|
-
- **recall_memory**: Restore previous context
|
|
101
|
-
- **find_symbol / find_references**: Identify code dependencies
|
|
102
|
-
|
|
103
72
|
## Output Format
|
|
104
73
|
|
|
105
74
|
```markdown
|
|
@@ -113,12 +82,6 @@ This command automatically uses these MCP tools:
|
|
|
113
82
|
|
|
114
83
|
## 1. Logical Dependencies and Constraints
|
|
115
84
|
|
|
116
|
-
**Key Questions**:
|
|
117
|
-
- What policies or required rules apply?
|
|
118
|
-
- Should task order be rearranged?
|
|
119
|
-
- Required prerequisites or information?
|
|
120
|
-
- Explicit user constraints?
|
|
121
|
-
|
|
122
85
|
**Constraint Analysis**:
|
|
123
86
|
[analysis content]
|
|
124
87
|
|
|
@@ -126,180 +89,94 @@ This command automatically uses these MCP tools:
|
|
|
126
89
|
|
|
127
90
|
## 2. Risk Assessment
|
|
128
91
|
|
|
129
|
-
|
|
92
|
+
**Risk Assessment**:
|
|
93
|
+
- Task type: [risk level]
|
|
94
|
+
- Rollback possibility: [assessment]
|
|
95
|
+
- Compatibility/Security/Performance risks
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 3. Inductive Reasoning and Hypothesis Exploration
|
|
100
|
+
|
|
101
|
+
**Hypothesis Generation**:
|
|
102
|
+
1. **Hypothesis 1**: [description] (Likelihood: High/Medium/Low)
|
|
103
|
+
- Evidence: [supporting evidence]
|
|
104
|
+
- Verification: [how to verify]
|
|
105
|
+
|
|
106
|
+
2. **Hypothesis 2**: ...
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
[Steps 4-9...]
|
|
130
111
|
|
|
131
112
|
---
|
|
132
113
|
|
|
133
114
|
## Summary
|
|
134
115
|
|
|
135
116
|
[Overall reasoning results summary and recommendations]
|
|
136
|
-
```
|
|
137
117
|
|
|
138
|
-
|
|
118
|
+
**Recommended Actions**:
|
|
119
|
+
1. Immediate: [low risk action]
|
|
120
|
+
2. Short-term: [medium priority]
|
|
121
|
+
3. Medium-term: [long-term fix]
|
|
122
|
+
```
|
|
139
123
|
|
|
140
|
-
|
|
124
|
+
## Example
|
|
141
125
|
|
|
142
126
|
```
|
|
143
|
-
User: /vibe.reason "After user login, profile page intermittently returns 500 error
|
|
127
|
+
User: /vibe.reason "After user login, profile page intermittently returns 500 error"
|
|
144
128
|
|
|
145
|
-
AI: Analyzing
|
|
129
|
+
AI: Analyzing with 9-step reasoning framework...
|
|
146
130
|
|
|
147
131
|
# Reasoning Framework Analysis
|
|
148
132
|
|
|
149
|
-
**Problem**: Intermittent 500 error on profile page after login
|
|
133
|
+
**Problem**: Intermittent 500 error on profile page after login
|
|
150
134
|
**Context**: Intermittent occurrence, happens after successful login
|
|
151
|
-
**Steps Applied**: 9/9
|
|
152
|
-
|
|
153
|
-
---
|
|
154
135
|
|
|
155
136
|
## 1. Logical Dependencies and Constraints
|
|
156
137
|
|
|
157
138
|
**Constraint Analysis**:
|
|
158
139
|
- Policy/Rules: Need to check auth/authz system policies
|
|
159
|
-
- Task Order: Verify login
|
|
140
|
+
- Task Order: Verify login -> session creation -> profile fetch order
|
|
160
141
|
- Prerequisites: Need to identify error reproduction conditions
|
|
161
|
-
- User Constraints: Production environment limits debugging tools
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## 2. Risk Assessment
|
|
166
|
-
|
|
167
|
-
**Risk Assessment**:
|
|
168
|
-
- Task type: Debugging (medium risk - logging low risk, DB changes high risk)
|
|
169
|
-
- Rollback possibility: Adding logs easy to rollback
|
|
170
|
-
- Compatibility risk: Session structure changes affect existing users
|
|
171
|
-
- Security risk: Excessive logging may expose sensitive info
|
|
172
|
-
- Performance risk: Additional logging minimal impact
|
|
173
|
-
|
|
174
|
-
---
|
|
175
142
|
|
|
176
143
|
## 3. Inductive Reasoning and Hypothesis Exploration
|
|
177
144
|
|
|
178
145
|
**Hypothesis Generation**:
|
|
179
146
|
1. **Hypothesis 1: Incomplete session data** (Likelihood: High)
|
|
180
147
|
- Evidence: Intermittent = timing issue or data consistency problem
|
|
181
|
-
- Verification: Add logging to session save logic
|
|
148
|
+
- Verification: Add logging to session save logic
|
|
182
149
|
|
|
183
150
|
2. **Hypothesis 2: Async processing order issue** (Likelihood: Medium)
|
|
184
151
|
- Evidence: undefined = accessing data before load
|
|
185
|
-
- Verification: Check Promise chain
|
|
186
|
-
|
|
187
|
-
3. **Hypothesis 3: DB query returns null** (Likelihood: Low)
|
|
188
|
-
- Evidence: User info fetch fails only under certain conditions
|
|
189
|
-
- Verification: Check profile query logs, review foreign key constraints
|
|
190
|
-
|
|
191
|
-
**Priority**: Verify in order of likelihood, don't completely rule out low probability
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
[Additional steps 4-9 analysis...]
|
|
196
|
-
|
|
197
|
-
---
|
|
152
|
+
- Verification: Check Promise chain, missing await
|
|
198
153
|
|
|
199
154
|
## Summary
|
|
200
155
|
|
|
201
|
-
Analyzed profile page 500 error after login through 9-step reasoning framework.
|
|
202
|
-
|
|
203
156
|
**Key Findings**:
|
|
204
|
-
- Most likely cause: Incomplete session data
|
|
205
|
-
- Verification priority: 1)
|
|
157
|
+
- Most likely cause: Incomplete session data
|
|
158
|
+
- Verification priority: 1) Session logging -> 2) Async review -> 3) DB check
|
|
206
159
|
|
|
207
160
|
**Recommended Actions**:
|
|
208
|
-
1. Immediate: Add detailed logging to session save/fetch
|
|
209
|
-
2. Short-term: Code review async processing
|
|
210
|
-
3. Medium-term: Strengthen session store monitoring
|
|
211
|
-
|
|
212
|
-
**Next Steps**:
|
|
213
|
-
Check `profile_controller.ts` → Add try-catch and logging to session processing logic → Identify reproduction conditions
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### Example 2: Architecture Design Decision
|
|
217
|
-
|
|
218
|
-
```
|
|
219
|
-
User: /vibe.reason "Want to add real-time notification feature. Should I use WebSocket, SSE, or Long Polling?"
|
|
220
|
-
|
|
221
|
-
AI: [Systematically analyze constraints, risks, pros/cons of each option through 9-step framework, recommend optimal choice for project situation]
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
## Integration with Other Commands
|
|
225
|
-
|
|
226
|
-
### With /vibe.spec
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
# 1. Collect requirements
|
|
230
|
-
/vibe.spec "real-time notifications"
|
|
231
|
-
|
|
232
|
-
# 2. When technical decision needed
|
|
233
|
-
/vibe.reason "Choosing WebSocket vs SSE vs Long Polling for real-time notifications"
|
|
234
|
-
|
|
235
|
-
# 3. Update SPEC document and create plan
|
|
236
|
-
/vibe.plan "real-time notifications"
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### With /vibe.analyze
|
|
240
|
-
|
|
161
|
+
1. Immediate: Add detailed logging to session save/fetch
|
|
162
|
+
2. Short-term: Code review async processing
|
|
163
|
+
3. Medium-term: Strengthen session store monitoring
|
|
241
164
|
```
|
|
242
|
-
# 1. Discover issue through code analysis
|
|
243
|
-
/vibe.analyze --code
|
|
244
|
-
|
|
245
|
-
# 2. Analyze discovered issue with reasoning framework
|
|
246
|
-
/vibe.reason "Refactoring strategy to reduce users_service.py Cyclomatic Complexity from 15 to under 10"
|
|
247
|
-
|
|
248
|
-
# 3. Execute refactoring
|
|
249
|
-
/vibe.run "Task: Refactor users_service.py"
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
## Agent Configuration
|
|
253
|
-
|
|
254
|
-
This command uses `~/.claude/agents/reasoning-agent.md`.
|
|
255
|
-
|
|
256
|
-
**Agent Role**:
|
|
257
|
-
- Systematic reasoning and problem-solving expert
|
|
258
|
-
- Logically analyze complex problems
|
|
259
|
-
- Derive optimal solutions considering all relevant factors
|
|
260
|
-
|
|
261
|
-
**Agent Features**:
|
|
262
|
-
- Apply 9-step reasoning framework
|
|
263
|
-
- Hypothesis-based approach
|
|
264
|
-
- Risk assessment and mitigation strategies
|
|
265
|
-
- Precise evidence and source citation
|
|
266
165
|
|
|
267
166
|
## Best Practices
|
|
268
167
|
|
|
269
168
|
1. **Describe problem specifically**
|
|
270
|
-
-
|
|
271
|
-
-
|
|
169
|
+
- Bad: "There's a bug"
|
|
170
|
+
- Good: "After login, profile page intermittently returns 500 error"
|
|
272
171
|
|
|
273
172
|
2. **Include context**
|
|
274
|
-
- Occurrence conditions (always? intermittent?
|
|
173
|
+
- Occurrence conditions (always? intermittent?)
|
|
275
174
|
- Relevant tech stack
|
|
276
175
|
- Solutions already tried
|
|
277
176
|
|
|
278
|
-
3. **
|
|
279
|
-
-
|
|
280
|
-
-
|
|
281
|
-
|
|
282
|
-
4. **Verify step by step**
|
|
283
|
-
- Verify hypotheses suggested by reasoning framework in order
|
|
284
|
-
- Feedback each verification result to agent
|
|
285
|
-
|
|
286
|
-
5. **Combine with other commands**
|
|
287
|
-
- `/vibe.analyze` to understand situation → `/vibe.reason` to analyze solution → `/vibe.run` to execute
|
|
288
|
-
|
|
289
|
-
## Notes
|
|
290
|
-
|
|
291
|
-
- This command is specialized for complex problems. For simple tasks, direct requests are more efficient.
|
|
292
|
-
- Reasoning process may take time; allow sufficient time.
|
|
293
|
-
- Reasoning results are recommendations; final decision is user's.
|
|
294
|
-
- Automatically uses MCP tools, so hi-ai server must be connected.
|
|
295
|
-
|
|
296
|
-
## Related
|
|
297
|
-
|
|
298
|
-
- [Reasoning Agent Guide](~/.claude/agents/reasoning-agent.md)
|
|
299
|
-
- [MCP hi-ai Guide](~/.claude/skills/tools/mcp-hi-ai-guide.md)
|
|
300
|
-
- [/vibe.analyze](vibe.analyze.md)
|
|
301
|
-
- [/vibe.spec](vibe.spec.md)
|
|
302
|
-
- [/vibe.plan](vibe.plan.md)
|
|
177
|
+
3. **Verify step by step**
|
|
178
|
+
- Verify hypotheses in order of likelihood
|
|
179
|
+
- Feedback each verification result
|
|
303
180
|
|
|
304
181
|
---
|
|
305
182
|
|