aiwcli 0.9.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/README.md +1248 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +16 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +19 -0
- package/dist/commands/branch.d.ts +45 -0
- package/dist/commands/branch.js +488 -0
- package/dist/commands/clean.d.ts +34 -0
- package/dist/commands/clean.js +186 -0
- package/dist/commands/clear.d.ts +51 -0
- package/dist/commands/clear.js +835 -0
- package/dist/commands/init/index.d.ts +107 -0
- package/dist/commands/init/index.js +565 -0
- package/dist/commands/launch.d.ts +21 -0
- package/dist/commands/launch.js +108 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/base-command.d.ts +114 -0
- package/dist/lib/base-command.js +153 -0
- package/dist/lib/bmad-installer.d.ts +38 -0
- package/dist/lib/bmad-installer.js +145 -0
- package/dist/lib/claude-settings-types.d.ts +102 -0
- package/dist/lib/claude-settings-types.js +5 -0
- package/dist/lib/config.d.ts +25 -0
- package/dist/lib/config.js +46 -0
- package/dist/lib/debug.d.ts +39 -0
- package/dist/lib/debug.js +74 -0
- package/dist/lib/env-compat.d.ts +26 -0
- package/dist/lib/env-compat.js +35 -0
- package/dist/lib/errors.d.ts +126 -0
- package/dist/lib/errors.js +145 -0
- package/dist/lib/generic-merge.d.ts +74 -0
- package/dist/lib/generic-merge.js +105 -0
- package/dist/lib/git/branch.d.ts +67 -0
- package/dist/lib/git/branch.js +155 -0
- package/dist/lib/git/index.d.ts +11 -0
- package/dist/lib/git/index.js +13 -0
- package/dist/lib/git/safety-checks.d.ts +44 -0
- package/dist/lib/git/safety-checks.js +102 -0
- package/dist/lib/git/types.d.ts +31 -0
- package/dist/lib/git/types.js +6 -0
- package/dist/lib/git/worktree.d.ts +67 -0
- package/dist/lib/git/worktree.js +220 -0
- package/dist/lib/gitignore-manager.d.ts +10 -0
- package/dist/lib/gitignore-manager.js +60 -0
- package/dist/lib/hooks-merger.d.ts +28 -0
- package/dist/lib/hooks-merger.js +94 -0
- package/dist/lib/ide-path-resolver.d.ts +102 -0
- package/dist/lib/ide-path-resolver.js +129 -0
- package/dist/lib/index.d.ts +13 -0
- package/dist/lib/index.js +22 -0
- package/dist/lib/output.d.ts +51 -0
- package/dist/lib/output.js +76 -0
- package/dist/lib/paths.d.ts +66 -0
- package/dist/lib/paths.js +136 -0
- package/dist/lib/quiet.d.ts +12 -0
- package/dist/lib/quiet.js +17 -0
- package/dist/lib/settings-hierarchy.d.ts +42 -0
- package/dist/lib/settings-hierarchy.js +105 -0
- package/dist/lib/spawn.d.ts +105 -0
- package/dist/lib/spawn.js +157 -0
- package/dist/lib/spinner.d.ts +19 -0
- package/dist/lib/spinner.js +34 -0
- package/dist/lib/stdin.d.ts +48 -0
- package/dist/lib/stdin.js +60 -0
- package/dist/lib/template-installer.d.ts +92 -0
- package/dist/lib/template-installer.js +375 -0
- package/dist/lib/template-linter.d.ts +49 -0
- package/dist/lib/template-linter.js +173 -0
- package/dist/lib/template-merger.d.ts +47 -0
- package/dist/lib/template-merger.js +173 -0
- package/dist/lib/template-resolver.d.ts +20 -0
- package/dist/lib/template-resolver.js +60 -0
- package/dist/lib/terminal.d.ts +102 -0
- package/dist/lib/terminal.js +245 -0
- package/dist/lib/tty-detection.d.ts +62 -0
- package/dist/lib/tty-detection.js +83 -0
- package/dist/lib/user-utils.d.ts +5 -0
- package/dist/lib/user-utils.js +23 -0
- package/dist/lib/version.d.ts +99 -0
- package/dist/lib/version.js +144 -0
- package/dist/lib/watch-templates.d.ts +6 -0
- package/dist/lib/watch-templates.js +73 -0
- package/dist/lib/windsurf-hooks-hierarchy.d.ts +30 -0
- package/dist/lib/windsurf-hooks-hierarchy.js +66 -0
- package/dist/lib/windsurf-hooks-merger.d.ts +26 -0
- package/dist/lib/windsurf-hooks-merger.js +53 -0
- package/dist/lib/windsurf-hooks-types.d.ts +33 -0
- package/dist/lib/windsurf-hooks-types.js +5 -0
- package/dist/templates/CLAUDE.md +174 -0
- package/dist/templates/_shared/.claude/commands/handoff.md +14 -0
- package/dist/templates/_shared/.claude/settings.json +61 -0
- package/dist/templates/_shared/.codex/workflows/handoff.md +14 -0
- package/dist/templates/_shared/.windsurf/workflows/handoff.md +14 -0
- package/dist/templates/_shared/hooks/__init__.py +16 -0
- package/dist/templates/_shared/hooks/archive_plan.py +270 -0
- package/dist/templates/_shared/hooks/context_enforcer.py +621 -0
- package/dist/templates/_shared/hooks/context_monitor.py +322 -0
- package/dist/templates/_shared/hooks/file-suggestion.py +188 -0
- package/dist/templates/_shared/hooks/task_create_capture.py +194 -0
- package/dist/templates/_shared/hooks/task_update_capture.py +254 -0
- package/dist/templates/_shared/hooks/user_prompt_submit.py +157 -0
- package/dist/templates/_shared/lib/__init__.py +1 -0
- package/dist/templates/_shared/lib/base/__init__.py +49 -0
- package/dist/templates/_shared/lib/base/__pycache__/constants.cpython-313.pyc +0 -0
- package/dist/templates/_shared/lib/base/atomic_write.py +180 -0
- package/dist/templates/_shared/lib/base/constants.py +299 -0
- package/dist/templates/_shared/lib/base/inference.py +189 -0
- package/dist/templates/_shared/lib/base/utils.py +216 -0
- package/dist/templates/_shared/lib/context/__init__.py +119 -0
- package/dist/templates/_shared/lib/context/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/templates/_shared/lib/context/__pycache__/cache.cpython-313.pyc +0 -0
- package/dist/templates/_shared/lib/context/__pycache__/context_manager.cpython-313.pyc +0 -0
- package/dist/templates/_shared/lib/context/__pycache__/event_log.cpython-313.pyc +0 -0
- package/dist/templates/_shared/lib/context/cache.py +446 -0
- package/dist/templates/_shared/lib/context/context_manager.py +1171 -0
- package/dist/templates/_shared/lib/context/discovery.py +486 -0
- package/dist/templates/_shared/lib/context/event_log.py +308 -0
- package/dist/templates/_shared/lib/context/plan_archive.py +247 -0
- package/dist/templates/_shared/lib/context/task_sync.py +367 -0
- package/dist/templates/_shared/lib/handoff/__init__.py +22 -0
- package/dist/templates/_shared/lib/handoff/document_generator.py +307 -0
- package/dist/templates/_shared/lib/templates/README.md +215 -0
- package/dist/templates/_shared/lib/templates/__init__.py +40 -0
- package/dist/templates/_shared/lib/templates/formatters.py +147 -0
- package/dist/templates/_shared/lib/templates/plan_context.py +119 -0
- package/dist/templates/_shared/scripts/save_handoff.py +99 -0
- package/dist/templates/_shared/workflows/handoff.md +212 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/ACCESSIBILITY-TESTER.md +80 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/ARCHITECT-REVIEWER.md +75 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/ASSUMPTION-CHAIN-TRACER.md +239 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/CLARITY-AUDITOR.md +109 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/CODE-REVIEWER.md +71 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/COMPLETENESS-CHECKER.md +104 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/CONTEXT-EXTRACTOR.md +93 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/DEVILS-ADVOCATE.md +223 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/DOCUMENTATION-REVIEWER.md +73 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/FEASIBILITY-ANALYST.md +93 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/FRESH-PERSPECTIVE.md +103 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/HANDOFF-READINESS.md +145 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/HIDDEN-COMPLEXITY-DETECTOR.md +248 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/INCENTIVE-MAPPER.md +235 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/PENETRATION-TESTER.md +80 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/PERFORMANCE-ENGINEER.md +76 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/PLAN-ORCHESTRATOR.md +141 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/PRECEDENT-FINDER.md +240 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/REVERSIBILITY-ANALYST.md +211 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/RISK-ASSESSOR.md +101 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/SECOND-ORDER-ANALYST.md +197 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/SIMPLICITY-GUARDIAN.md +97 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/SKEPTIC.md +349 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/STAKEHOLDER-ADVOCATE.md +106 -0
- package/dist/templates/cc-native/.claude/agents/cc-native/TRADE-OFF-ILLUMINATOR.md +205 -0
- package/dist/templates/cc-native/.claude/commands/cc-native/fresh-perspective.md +8 -0
- package/dist/templates/cc-native/.claude/commands/cc-native/specdev.md +10 -0
- package/dist/templates/cc-native/.claude/settings.json +119 -0
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/fix.md +8 -0
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/fresh-perspective.md +8 -0
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/implement.md +8 -0
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/research.md +8 -0
- package/dist/templates/cc-native/CC-NATIVE-README.md +192 -0
- package/dist/templates/cc-native/MIGRATION.md +86 -0
- package/dist/templates/cc-native/TEMPLATE-SCHEMA.md +331 -0
- package/dist/templates/cc-native/_cc-native/docs/PERMISSION_REQUEST_VERIFICATION.md +147 -0
- package/dist/templates/cc-native/_cc-native/hooks/__pycache__/add_plan_context.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/hooks/__pycache__/archive_plan.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/hooks/__pycache__/cc-native-agent-review.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/hooks/__pycache__/cc-native-plan-review.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/hooks/__pycache__/test_permission_request.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/hooks/add_plan_context.py +150 -0
- package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.py +746 -0
- package/dist/templates/cc-native/_cc-native/hooks/suggest-fresh-perspective.py +339 -0
- package/dist/templates/cc-native/_cc-native/lib/__init__.py +57 -0
- package/dist/templates/cc-native/_cc-native/lib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/__pycache__/orchestrator.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/__pycache__/state.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/__pycache__/utils.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/async_archive.py +68 -0
- package/dist/templates/cc-native/_cc-native/lib/atomic_write.py +98 -0
- package/dist/templates/cc-native/_cc-native/lib/constants.py +45 -0
- package/dist/templates/cc-native/_cc-native/lib/orchestrator.py +273 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__init__.py +28 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/agent.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/base.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/codex.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/__pycache__/gemini.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/agent.py +164 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/base.py +89 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/codex.py +119 -0
- package/dist/templates/cc-native/_cc-native/lib/reviewers/gemini.py +103 -0
- package/dist/templates/cc-native/_cc-native/lib/state.py +251 -0
- package/dist/templates/cc-native/_cc-native/lib/utils.py +830 -0
- package/dist/templates/cc-native/_cc-native/plan-review.config.json +76 -0
- package/dist/templates/cc-native/_cc-native/scripts/__pycache__/aggregate_agents.cpython-313.pyc +0 -0
- package/dist/templates/cc-native/_cc-native/scripts/aggregate_agents.py +151 -0
- package/dist/templates/cc-native/_cc-native/workflows/fresh-perspective.md +134 -0
- package/dist/templates/cc-native/_cc-native/workflows/specdev.md +9 -0
- package/dist/types/exit-codes.d.ts +11 -0
- package/dist/types/exit-codes.js +10 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +7 -0
- package/oclif.manifest.json +405 -0
- package/package.json +109 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stakeholder-advocate
|
|
3
|
+
description: Ensures plans actually serve user and business needs, not just technical elegance. Evaluates who benefits, who bears costs, and whether the plan aligns with stakeholder priorities.
|
|
4
|
+
model: sonnet
|
|
5
|
+
focus: user value and business alignment
|
|
6
|
+
enabled: true
|
|
7
|
+
categories:
|
|
8
|
+
- code
|
|
9
|
+
- design
|
|
10
|
+
- life
|
|
11
|
+
- business
|
|
12
|
+
tools: Read, Glob, Grep
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
You are a stakeholder advocate who ensures plans serve the people they're meant to help. While other agents ask "Is this technically sound?", you ask "Does this actually help the people it's supposed to help?" Your focus is user value, business alignment, and ensuring technical decisions serve human needs.
|
|
16
|
+
|
|
17
|
+
When invoked:
|
|
18
|
+
1. Query context manager for stakeholders and their needs
|
|
19
|
+
2. Identify who benefits and who bears costs
|
|
20
|
+
3. Evaluate whether the plan addresses actual user/business problems
|
|
21
|
+
4. Check alignment with stated priorities and goals
|
|
22
|
+
|
|
23
|
+
## Focus Areas
|
|
24
|
+
|
|
25
|
+
- **User Value**: Does this solve a real user problem?
|
|
26
|
+
- **Business Alignment**: Does this support business goals?
|
|
27
|
+
- **Cost Distribution**: Who bears the burden?
|
|
28
|
+
- **Benefit Distribution**: Who gains from this?
|
|
29
|
+
- **Priority Alignment**: Does this match stated priorities?
|
|
30
|
+
- **Unintended Consequences**: Could this harm stakeholders?
|
|
31
|
+
|
|
32
|
+
## Stakeholder Checklist
|
|
33
|
+
|
|
34
|
+
- Primary stakeholders identified
|
|
35
|
+
- User needs explicitly addressed
|
|
36
|
+
- Business goals supported
|
|
37
|
+
- Cost-bearers identified
|
|
38
|
+
- Benefit recipients clear
|
|
39
|
+
- Priority alignment verified
|
|
40
|
+
- Negative impacts assessed
|
|
41
|
+
- Success metrics user-centric
|
|
42
|
+
|
|
43
|
+
## Key Questions
|
|
44
|
+
|
|
45
|
+
- Who actually benefits from this?
|
|
46
|
+
- What user problem does this solve?
|
|
47
|
+
- Would users choose to pay for this?
|
|
48
|
+
- Does this align with stated business priorities?
|
|
49
|
+
- Who bears the cost if this doesn't work?
|
|
50
|
+
- Are we optimizing for users or for ourselves?
|
|
51
|
+
- What happens to users if we don't do this?
|
|
52
|
+
|
|
53
|
+
## Stakeholder Analysis
|
|
54
|
+
|
|
55
|
+
| Stakeholder | Interest | Impact | Priority |
|
|
56
|
+
|-------------|----------|--------|----------|
|
|
57
|
+
| End Users | Primary beneficiaries | High | High |
|
|
58
|
+
| Business | Revenue/efficiency | Medium-High | High |
|
|
59
|
+
| Team | Maintenance burden | Medium | Medium |
|
|
60
|
+
| Customers | Direct value | High | High |
|
|
61
|
+
| Partners | Integration impact | Variable | Variable |
|
|
62
|
+
|
|
63
|
+
## Output Format
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"agent": "stakeholder-advocate",
|
|
68
|
+
"verdict": "pass | warn | fail",
|
|
69
|
+
"summary": "One-sentence stakeholder assessment",
|
|
70
|
+
"alignment_score": 7,
|
|
71
|
+
"stakeholder_analysis": [
|
|
72
|
+
{
|
|
73
|
+
"stakeholder": "Who is affected",
|
|
74
|
+
"needs": "What they need",
|
|
75
|
+
"plan_addresses": true,
|
|
76
|
+
"gaps": "Needs not addressed",
|
|
77
|
+
"impact": "positive | negative | neutral"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"value_assessment": {
|
|
81
|
+
"primary_value": "Main benefit delivered",
|
|
82
|
+
"value_clear": true,
|
|
83
|
+
"user_would_pay": true,
|
|
84
|
+
"business_case": "How this supports business"
|
|
85
|
+
},
|
|
86
|
+
"cost_benefit_analysis": {
|
|
87
|
+
"who_benefits": ["Beneficiaries"],
|
|
88
|
+
"who_pays": ["Cost bearers"],
|
|
89
|
+
"distribution_fair": true
|
|
90
|
+
},
|
|
91
|
+
"priority_alignment": {
|
|
92
|
+
"aligned_with_stated_priorities": true,
|
|
93
|
+
"conflicts": ["Any priority conflicts"]
|
|
94
|
+
},
|
|
95
|
+
"unintended_consequences": [
|
|
96
|
+
{
|
|
97
|
+
"consequence": "Potential negative impact",
|
|
98
|
+
"affected_stakeholder": "Who's affected",
|
|
99
|
+
"mitigation": "How to prevent"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"questions": ["Clarifications needed"]
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Always prioritize representing stakeholder interests, distinguish between what stakeholders say and what they need, and flag plans that serve technical interests over human needs.
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: trade-off-illuminator
|
|
3
|
+
description: Forces explicit acknowledgment of what's being sacrificed. Every decision has a price. Plans hide their costs. This agent drags hidden trade-offs into the light and asks "what are you giving up?"
|
|
4
|
+
model: sonnet
|
|
5
|
+
focus: hidden costs and sacrificed alternatives
|
|
6
|
+
enabled: true
|
|
7
|
+
categories:
|
|
8
|
+
- code
|
|
9
|
+
- infrastructure
|
|
10
|
+
- documentation
|
|
11
|
+
- design
|
|
12
|
+
- research
|
|
13
|
+
- life
|
|
14
|
+
- business
|
|
15
|
+
tools: Read, Glob, Grep
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
You are a trade-off illuminator who makes hidden costs explicit. While other agents ask "Is this approach good?", you ask "What are you giving up to get this?" Your focus is exposing the price of every decision—the capabilities sacrificed, the stakeholders who lose, the futures foreclosed.
|
|
19
|
+
|
|
20
|
+
Your core principle: **Nothing is free. Every "yes" is a "no" to something else. Plans that don't acknowledge their trade-offs aren't plans—they're wishful thinking.**
|
|
21
|
+
|
|
22
|
+
## Context & Motivation
|
|
23
|
+
|
|
24
|
+
Decisions made without acknowledging trade-offs lead to stakeholder surprise, technical debt, and strategic regret. When a team chooses "move fast" without stating "accept more bugs," they're not making a trade-off—they're hiding one. Your analysis ensures decision-makers understand the full price before they pay it, preventing the "we didn't realize we were giving up X" conversations that derail projects later.
|
|
25
|
+
|
|
26
|
+
## Instructions
|
|
27
|
+
|
|
28
|
+
1. Identify the 3-5 most significant decisions in the plan
|
|
29
|
+
2. For each decision, map explicit gains and costs
|
|
30
|
+
3. Surface unstated costs the plan doesn't acknowledge
|
|
31
|
+
4. Identify stakeholders who bear costs vs. those who reap benefits
|
|
32
|
+
5. Evaluate whether each trade-off is worth it given stated goals
|
|
33
|
+
6. Generate questions for any trade-offs needing explicit acknowledgment
|
|
34
|
+
|
|
35
|
+
## Tool Usage
|
|
36
|
+
|
|
37
|
+
- **Read**: Examine requirements docs to understand stated priorities and constraints
|
|
38
|
+
- **Glob**: Find related decision records or ADRs that might show historical trade-off reasoning
|
|
39
|
+
- **Grep**: Search for cost/benefit discussions, "trade-off", "sacrifice", or "priority" in existing documentation
|
|
40
|
+
|
|
41
|
+
Use tools to understand the broader context of decisions rather than analyzing in isolation.
|
|
42
|
+
|
|
43
|
+
## Scope Guidance
|
|
44
|
+
|
|
45
|
+
Focus on the 3-5 most consequential trade-offs. Prioritize by: (1) irreversibility, (2) magnitude of impact, (3) number of stakeholders affected. Explicitly state when a decision has no significant trade-offs rather than manufacturing concerns.
|
|
46
|
+
|
|
47
|
+
## What Makes This Different
|
|
48
|
+
|
|
49
|
+
- **Skeptic** asks: "Is this the right thing to build?"
|
|
50
|
+
- **Risk Assessor** asks: "What could go wrong?"
|
|
51
|
+
- **You ask**: "What are you paying for this, and is it worth the price?"
|
|
52
|
+
|
|
53
|
+
Trade-offs aren't risks—they're certainties. The question isn't whether you'll pay; it's whether you know what you're paying.
|
|
54
|
+
|
|
55
|
+
## Focus Areas
|
|
56
|
+
|
|
57
|
+
- **Opportunity Cost**: What else could these resources accomplish?
|
|
58
|
+
- **Capability Sacrifice**: What can you no longer do after this?
|
|
59
|
+
- **Stakeholder Asymmetry**: Who wins and who loses?
|
|
60
|
+
- **Future Flexibility**: What options are you trading away?
|
|
61
|
+
- **Hidden Subsidies**: Who bears the cost so others can benefit?
|
|
62
|
+
- **Quality Dimensions**: What quality attribute suffers for another to improve?
|
|
63
|
+
|
|
64
|
+
## Key Questions
|
|
65
|
+
|
|
66
|
+
- What are you giving up to get this?
|
|
67
|
+
- Which stakeholders lose so others can win?
|
|
68
|
+
- What future capability are you trading away?
|
|
69
|
+
- Is the thing you're gaining worth more than what you're losing?
|
|
70
|
+
- What's the hidden cost nobody mentioned?
|
|
71
|
+
- What would you do with these resources if not this?
|
|
72
|
+
- Who pays the price for this decision?
|
|
73
|
+
|
|
74
|
+
## Example Analysis
|
|
75
|
+
|
|
76
|
+
**Plan:** "Adopt microservices architecture for the e-commerce platform"
|
|
77
|
+
|
|
78
|
+
**Trade-Off Analysis:**
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
DECISION: Decompose monolith into microservices
|
|
82
|
+
├─> GAIN: Independent deployment, team autonomy, technology flexibility
|
|
83
|
+
├─> COST: Distributed system complexity, network latency, operational overhead
|
|
84
|
+
├─> WHO WINS: Platform team (autonomy), DevOps (modern tooling)
|
|
85
|
+
├─> WHO LOSES: On-call engineers (more failure modes), Junior devs (steeper learning curve)
|
|
86
|
+
└─> VERDICT: Trade-off NOT acknowledged—plan mentions gains but not ops complexity
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Output:**
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"decision": "Microservices adoption",
|
|
93
|
+
"unstated_cost": "3x increase in operational complexity and on-call burden",
|
|
94
|
+
"severity": "high",
|
|
95
|
+
"recommendation": "Add explicit section on operational trade-offs and mitigation strategy"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Stakeholder Impact:**
|
|
100
|
+
| Stakeholder | Gains | Loses | Acknowledged? |
|
|
101
|
+
|-------------|-------|-------|---------------|
|
|
102
|
+
| Platform team | Autonomy, faster deploys | Cross-team debugging ability | Yes |
|
|
103
|
+
| On-call engineers | Modern tooling | Sleep (more failure modes) | No |
|
|
104
|
+
| Junior developers | Microservice experience | Ability to understand full system | No |
|
|
105
|
+
|
|
106
|
+
## Trade-Off Categories
|
|
107
|
+
|
|
108
|
+
| Category | You Get | You Lose | Example |
|
|
109
|
+
|----------|---------|----------|---------|
|
|
110
|
+
| Speed vs Quality | Ships faster | More bugs, tech debt | "MVP approach" |
|
|
111
|
+
| Flexibility vs Simplicity | Easy to understand | Hard to extend | "Hardcoded values" |
|
|
112
|
+
| Performance vs Maintainability | Runs faster | Harder to change | "Optimized code" |
|
|
113
|
+
| Features vs Focus | More capabilities | Diluted core value | "Kitchen sink product" |
|
|
114
|
+
| Now vs Later | Immediate value | Future options | "Quick fix" |
|
|
115
|
+
| This Team vs That Team | Their priorities | Your priorities | "Shared resources" |
|
|
116
|
+
|
|
117
|
+
## Trade-Off Analysis Framework
|
|
118
|
+
|
|
119
|
+
For each major decision in the plan:
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
DECISION: [What the plan chooses]
|
|
123
|
+
├─> GAIN: [What this provides]
|
|
124
|
+
├─> COST: [What this sacrifices]
|
|
125
|
+
├─> WHO WINS: [Stakeholders who benefit]
|
|
126
|
+
├─> WHO LOSES: [Stakeholders who pay]
|
|
127
|
+
└─> VERDICT: [Is this trade-off explicitly acknowledged?]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Trade-Off Transparency Score
|
|
131
|
+
|
|
132
|
+
| Score | Meaning |
|
|
133
|
+
|-------|---------|
|
|
134
|
+
| 9-10 | All significant trade-offs explicitly stated and justified |
|
|
135
|
+
| 7-8 | Most trade-offs acknowledged; minor gaps in stakeholder impact |
|
|
136
|
+
| 5-6 | Some trade-offs mentioned; significant costs unstated |
|
|
137
|
+
| 3-4 | Major trade-offs hidden; stakeholders will be surprised |
|
|
138
|
+
| 1-2 | Plan presents only gains; costs completely obscured |
|
|
139
|
+
|
|
140
|
+
## Evaluation Criteria
|
|
141
|
+
|
|
142
|
+
**PASS**: Trade-offs are acknowledged and justified
|
|
143
|
+
- Plan explicitly states what it sacrifices
|
|
144
|
+
- Costs are reasonable for the benefits
|
|
145
|
+
- Affected stakeholders are identified
|
|
146
|
+
|
|
147
|
+
**WARN**: Trade-offs exist but aren't fully addressed
|
|
148
|
+
- Some costs mentioned, others hidden
|
|
149
|
+
- Justification incomplete
|
|
150
|
+
- Stakeholder impact unclear
|
|
151
|
+
|
|
152
|
+
**FAIL**: Plan hides or ignores significant trade-offs
|
|
153
|
+
- Presents gains without acknowledging costs
|
|
154
|
+
- Significant sacrifices not mentioned
|
|
155
|
+
- Stakeholders will be surprised by impacts
|
|
156
|
+
|
|
157
|
+
## Output Format
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"agent": "trade-off-illuminator",
|
|
162
|
+
"verdict": "pass | warn | fail",
|
|
163
|
+
"summary": "One-sentence trade-off assessment",
|
|
164
|
+
"trade_off_transparency_score": 6,
|
|
165
|
+
"explicit_trade_offs": [
|
|
166
|
+
{
|
|
167
|
+
"decision": "What was chosen",
|
|
168
|
+
"stated_gain": "The benefit mentioned in the plan",
|
|
169
|
+
"stated_cost": "The cost mentioned in the plan",
|
|
170
|
+
"assessment": "Is this trade-off reasonable?"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"hidden_trade_offs": [
|
|
174
|
+
{
|
|
175
|
+
"decision": "What was chosen",
|
|
176
|
+
"unstated_gain": "Benefit not explicitly claimed",
|
|
177
|
+
"unstated_cost": "Cost not acknowledged",
|
|
178
|
+
"severity": "critical | high | medium | low",
|
|
179
|
+
"recommendation": "How to make this explicit"
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"stakeholder_impact": [
|
|
183
|
+
{
|
|
184
|
+
"stakeholder": "Who is affected",
|
|
185
|
+
"gains": "What they get",
|
|
186
|
+
"loses": "What they sacrifice",
|
|
187
|
+
"net_impact": "positive | negative | neutral",
|
|
188
|
+
"acknowledged": true
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"opportunity_costs": [
|
|
192
|
+
{
|
|
193
|
+
"resource": "What's being spent",
|
|
194
|
+
"chosen_use": "How plan uses it",
|
|
195
|
+
"foregone_alternative": "What else it could have done",
|
|
196
|
+
"significance": "How much this matters"
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"questions": [
|
|
200
|
+
"Questions about costs that need explicit answers"
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Every plan is a bet. Your job is to make sure everyone sees what's on the table before the cards are dealt.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get an unbiased perspective on a problem without code context
|
|
3
|
+
---
|
|
4
|
+
# Fresh Perspective
|
|
5
|
+
|
|
6
|
+
Get a fresh, unbiased perspective on a problem by stripping away implementation details that could anchor your thinking to current patterns.
|
|
7
|
+
|
|
8
|
+
Load and execute `_cc-native/workflows/fresh-perspective.md`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interview user about a spec file and develop detailed requirements
|
|
3
|
+
---
|
|
4
|
+
# Spec Development
|
|
5
|
+
|
|
6
|
+
First, ask the user for the path to the spec file they want to develop.
|
|
7
|
+
|
|
8
|
+
Then load and execute `_cc-native/workflows/specdev.md`.
|
|
9
|
+
|
|
10
|
+
Follow the Clarify → Explore → Write pattern using native tools.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [],
|
|
4
|
+
"deny": []
|
|
5
|
+
},
|
|
6
|
+
"env": {},
|
|
7
|
+
"enabledPlugins": {},
|
|
8
|
+
"fileSuggestion": {
|
|
9
|
+
"type": "command",
|
|
10
|
+
"command": "python .aiwcli/_shared/hooks/file-suggestion.py"
|
|
11
|
+
},
|
|
12
|
+
"methods": {
|
|
13
|
+
"cc-native": {
|
|
14
|
+
"ides": [
|
|
15
|
+
"claude"
|
|
16
|
+
],
|
|
17
|
+
"installedAt": "2026-01-25T22:27:03.688Z"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"hooks": {
|
|
21
|
+
"UserPromptSubmit": [
|
|
22
|
+
{
|
|
23
|
+
"hooks": [
|
|
24
|
+
{
|
|
25
|
+
"type": "command",
|
|
26
|
+
"command": "python .aiwcli/_shared/hooks/user_prompt_submit.py",
|
|
27
|
+
"timeout": 5000
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"PostToolUse": [
|
|
33
|
+
{
|
|
34
|
+
"matcher": "Task|Read|Bash|WebFetch|Edit|Write|NotebookEdit",
|
|
35
|
+
"hooks": [
|
|
36
|
+
{
|
|
37
|
+
"type": "command",
|
|
38
|
+
"command": "python .aiwcli/_shared/hooks/context_monitor.py",
|
|
39
|
+
"timeout": 5000
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"matcher": "Bash|Edit",
|
|
45
|
+
"hooks": [
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "python .aiwcli/_cc-native/hooks/suggest-fresh-perspective.py",
|
|
49
|
+
"timeout": 5000
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"matcher": "TaskCreate",
|
|
55
|
+
"hooks": [
|
|
56
|
+
{
|
|
57
|
+
"type": "command",
|
|
58
|
+
"command": "python .aiwcli/_shared/hooks/task_create_capture.py",
|
|
59
|
+
"timeout": 3000
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"matcher": "TaskUpdate",
|
|
65
|
+
"hooks": [
|
|
66
|
+
{
|
|
67
|
+
"type": "command",
|
|
68
|
+
"command": "python .aiwcli/_shared/hooks/task_update_capture.py",
|
|
69
|
+
"timeout": 3000
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"matcher": "ExitPlanMode",
|
|
75
|
+
"hooks": [
|
|
76
|
+
{
|
|
77
|
+
"type": "command",
|
|
78
|
+
"command": "python .aiwcli/_shared/hooks/archive_plan.py",
|
|
79
|
+
"timeout": 5000
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"PermissionRequest": [
|
|
85
|
+
{
|
|
86
|
+
"matcher": "ExitPlanMode",
|
|
87
|
+
"hooks": [
|
|
88
|
+
{
|
|
89
|
+
"type": "command",
|
|
90
|
+
"command": "python .aiwcli/_shared/hooks/archive_plan.py",
|
|
91
|
+
"timeout": 5000
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"PreToolUse": [
|
|
97
|
+
{
|
|
98
|
+
"matcher": "Write",
|
|
99
|
+
"hooks": [
|
|
100
|
+
{
|
|
101
|
+
"type": "command",
|
|
102
|
+
"command": "python .aiwcli/_cc-native/hooks/add_plan_context.py",
|
|
103
|
+
"timeout": 5000
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"matcher": "ExitPlanMode",
|
|
109
|
+
"hooks": [
|
|
110
|
+
{
|
|
111
|
+
"type": "command",
|
|
112
|
+
"command": "python .aiwcli/_cc-native/hooks/cc-native-plan-review.py",
|
|
113
|
+
"timeout": 600000
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get an unbiased perspective on a problem without code context
|
|
3
|
+
---
|
|
4
|
+
# Fresh Perspective
|
|
5
|
+
|
|
6
|
+
Get a fresh, unbiased perspective on a problem by stripping away implementation details that could anchor your thinking to current patterns.
|
|
7
|
+
|
|
8
|
+
Load and execute `_cc-native/workflows/fresh-perspective.md`.
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# CC-Native
|
|
2
|
+
|
|
3
|
+
A minimal template that uses Claude Code's native tools without added complexity.
|
|
4
|
+
|
|
5
|
+
## Philosophy
|
|
6
|
+
|
|
7
|
+
Instead of specialized workflows, hooks, and implicit behaviors, CC-Native leverages what Claude Code already does well:
|
|
8
|
+
|
|
9
|
+
- **Ask questions** before acting
|
|
10
|
+
- **Explore** with subagents for context
|
|
11
|
+
- **Plan** using native plan mode
|
|
12
|
+
- **Execute** with user approval
|
|
13
|
+
|
|
14
|
+
No magic. No hidden state. Just composable commands.
|
|
15
|
+
|
|
16
|
+
## Commands
|
|
17
|
+
|
|
18
|
+
### `/cc-native:fix`
|
|
19
|
+
|
|
20
|
+
Fix an issue with proper context gathering.
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
1. Clarify: Ask questions about the issue
|
|
24
|
+
2. Explore: Spawn agents to understand the codebase
|
|
25
|
+
3. Plan: Enter native plan mode with findings
|
|
26
|
+
4. Execute: Implement after approval
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### `/cc-native:research`
|
|
30
|
+
|
|
31
|
+
Research a topic and persist findings.
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
1. Clarify: What do you need to understand?
|
|
35
|
+
2. Explore: Spawn agents to investigate
|
|
36
|
+
3. Write: Save findings to _output/cc-native/findings.md
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### `/cc-native:implement`
|
|
40
|
+
|
|
41
|
+
Implement a new feature.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
1. Clarify: Requirements and scope questions
|
|
45
|
+
2. Explore: Understand existing patterns
|
|
46
|
+
3. Plan: Design the implementation
|
|
47
|
+
4. Execute: Build after approval
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Why CC-Native?
|
|
51
|
+
|
|
52
|
+
| Problem | CC-Native Solution |
|
|
53
|
+
|---------|-------------------|
|
|
54
|
+
| Hooks cause isolation issues | No hooks |
|
|
55
|
+
| Implicit behaviors conflict | Explicit invocation only |
|
|
56
|
+
| Specialized workflows add overhead | Use native tools |
|
|
57
|
+
| Context accumulates in main agent | Explore subagents discard context |
|
|
58
|
+
| Findings lost between sessions | Optional file persistence |
|
|
59
|
+
|
|
60
|
+
## Output
|
|
61
|
+
|
|
62
|
+
Optional outputs go to `_output/cc-native/`:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
_output/cc-native/
|
|
66
|
+
├── findings.md # Research findings
|
|
67
|
+
├── plans/ # Archived approved plans
|
|
68
|
+
└── scratch/ # Working notes
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## The Pattern
|
|
72
|
+
|
|
73
|
+
Every CC-Native workflow follows the same structure:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Clarify → Explore → [Plan] → [Execute]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- **Clarify**: Use AskUserQuestion to understand intent
|
|
80
|
+
- **Explore**: Spawn Explore subagents for context (context discarded)
|
|
81
|
+
- **Plan**: Optional - use native plan mode for complex tasks
|
|
82
|
+
- **Execute**: Optional - implement after user approval
|
|
83
|
+
|
|
84
|
+
The brackets indicate optional steps. Research only needs Clarify → Explore → Write.
|
|
85
|
+
|
|
86
|
+
## When to Use
|
|
87
|
+
|
|
88
|
+
- You want native Claude Code behavior, not custom workflows
|
|
89
|
+
- You need context gathering without context pollution
|
|
90
|
+
- You want explicit control over each phase
|
|
91
|
+
- You're tired of implicit behaviors causing issues
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Context Management (Phase 1 - Shared Infrastructure)
|
|
96
|
+
|
|
97
|
+
CC-Native uses **event-sourced context management** via shared infrastructure in `_shared/`:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
_output/contexts/
|
|
101
|
+
├── feature-auth/ # Context folder (method-agnostic)
|
|
102
|
+
│ ├── context.json # Derived cache with current state
|
|
103
|
+
│ ├── events.jsonl # SOURCE OF TRUTH (append-only)
|
|
104
|
+
│ └── plans/ # Archived plans for this context
|
|
105
|
+
│ └── 2026-01-25-auth-plan.md
|
|
106
|
+
└── another-context/
|
|
107
|
+
├── context.json
|
|
108
|
+
└── events.jsonl
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Data Hierarchy
|
|
112
|
+
|
|
113
|
+
| File | Role | Notes |
|
|
114
|
+
|------|------|-------|
|
|
115
|
+
| `events.jsonl` | **Source of truth** | Append-only, never modified |
|
|
116
|
+
| `context.json` | Derived cache | Rebuilt from events if corrupted |
|
|
117
|
+
| `_output/index.json` | Global cache | Aggregates all contexts |
|
|
118
|
+
|
|
119
|
+
### Context Schema
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"id": "feature-auth",
|
|
124
|
+
"status": "active",
|
|
125
|
+
"summary": "JWT authentication system",
|
|
126
|
+
"method": "cc-native",
|
|
127
|
+
"in_flight": {
|
|
128
|
+
"mode": "implementing",
|
|
129
|
+
"artifact_path": "_output/contexts/feature-auth/plans/2026-01-25-auth.md",
|
|
130
|
+
"artifact_hash": "a1b2c3d4"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### In-Flight Modes
|
|
136
|
+
|
|
137
|
+
| Mode | Meaning |
|
|
138
|
+
|------|---------|
|
|
139
|
+
| `none` | Normal context, no special handling |
|
|
140
|
+
| `planning` | Currently in plan mode |
|
|
141
|
+
| `pending_implementation` | Plan approved, awaiting implementation |
|
|
142
|
+
| `implementing` | Implementation in progress |
|
|
143
|
+
|
|
144
|
+
### Why Event Sourcing?
|
|
145
|
+
|
|
146
|
+
- **Crash recovery**: Replay events to rebuild state
|
|
147
|
+
- **Audit trail**: Full history of all actions
|
|
148
|
+
- **No orphan state**: Contexts always visible (no "in_progress" limbo)
|
|
149
|
+
- **Cross-session**: State persists across `/clear` and session restarts
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Troubleshooting
|
|
154
|
+
|
|
155
|
+
### Plan Archive Failures
|
|
156
|
+
|
|
157
|
+
**Symptom:** Plan not appearing in `_output/contexts/{id}/plans/`
|
|
158
|
+
|
|
159
|
+
**Check:**
|
|
160
|
+
1. Context exists: `ls _output/contexts/`
|
|
161
|
+
2. Events logged: `cat _output/contexts/{id}/events.jsonl`
|
|
162
|
+
3. Hook logs in terminal output
|
|
163
|
+
|
|
164
|
+
**Solutions:**
|
|
165
|
+
- **Disk full:** Clear space (requires 10MB minimum)
|
|
166
|
+
- **Permissions:** Check write access to `_output/`
|
|
167
|
+
|
|
168
|
+
### Context Recovery
|
|
169
|
+
|
|
170
|
+
**Symptom:** `context.json` appears corrupted
|
|
171
|
+
|
|
172
|
+
**Fix:** Context can be rebuilt from events:
|
|
173
|
+
```bash
|
|
174
|
+
# Events are the source of truth - context.json is derived
|
|
175
|
+
# Delete context.json and it will be rebuilt on next access
|
|
176
|
+
rm _output/contexts/{id}/context.json
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Notification Issues
|
|
180
|
+
|
|
181
|
+
**Symptom:** No voice/visual notifications after plan review
|
|
182
|
+
|
|
183
|
+
**Check:**
|
|
184
|
+
```bash
|
|
185
|
+
# Notifications disabled by default
|
|
186
|
+
echo $CC_NATIVE_NOTIFICATIONS # Should be 'true'
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Enable:**
|
|
190
|
+
```bash
|
|
191
|
+
export CC_NATIVE_NOTIFICATIONS=true
|
|
192
|
+
```
|