ganbatte-os 0.2.1
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/AGENTS.md +46 -0
- package/CLAUDE.md +31 -0
- package/GEMINI.md +17 -0
- package/LICENSE +21 -0
- package/README.md +141 -0
- package/agents/profiles/architect.md +13 -0
- package/agents/profiles/dev.md +13 -0
- package/agents/profiles/devops.md +12 -0
- package/agents/profiles/ganbatte-os-master.md +444 -0
- package/agents/profiles/index.json +14 -0
- package/agents/profiles/po.md +7 -0
- package/agents/profiles/qa.md +456 -0
- package/agents/profiles/sm.md +7 -0
- package/agents/profiles/squad-creator.md +7 -0
- package/agents/profiles/ux-design-expert.md +14 -0
- package/config.json +15 -0
- package/docs/curation.md +60 -0
- package/docs/gos_installation_guide.md +114 -0
- package/docs/ide-compatibility.md +20 -0
- package/docs/plan/plan-git-operations.md +51 -0
- package/docs/plan-distribuicao-publica.md +360 -0
- package/docs/stacks/stack-git-operations.md +154 -0
- package/docs/toolchain-map.md +18 -0
- package/integrations/README.md +42 -0
- package/integrations/antigravity/README.md +29 -0
- package/integrations/antigravity/command-map.json +29 -0
- package/integrations/claude/README.md +35 -0
- package/integrations/claude/agent-map.json +46 -0
- package/integrations/claude/command-map.json +32 -0
- package/integrations/claude/litellm-proxy.md +93 -0
- package/integrations/claude/mcp-specifics.md +121 -0
- package/integrations/codex/README.md +29 -0
- package/integrations/codex/command-map.json +29 -0
- package/integrations/cursor/README.md +8 -0
- package/integrations/cursor/command-map.json +11 -0
- package/integrations/gemini/README.md +13 -0
- package/integrations/gemini/command-map.json +11 -0
- package/integrations/kilo-code/README.md +7 -0
- package/integrations/kilo-code/command-map.json +11 -0
- package/integrations/opencode/README.md +91 -0
- package/integrations/opencode/command-map.json +46 -0
- package/integrations/registry.json +20 -0
- package/manifests/g-os-runtime-manifest.json +39 -0
- package/manifests/gos-install-manifest.json +46 -0
- package/opencode.json +7 -0
- package/package.json +51 -0
- package/playbooks/feature-development-playbook.md +239 -0
- package/playbooks/sprint-planner-playbook.md +127 -0
- package/playbooks/squad-pipeline-runner.md +196 -0
- package/playbooks/ssh-multi-account-setup.md +185 -0
- package/prompts/01-search.md +18 -0
- package/prompts/02-spec.md +19 -0
- package/prompts/03-tasks.md +15 -0
- package/prompts/04-code.md +10 -0
- package/prompts/05-reviews.md +11 -0
- package/rules/plan-mode.md +60 -0
- package/scripts/cli/gos-cli.js +679 -0
- package/scripts/hooks/pre-commit-validate.js +201 -0
- package/scripts/integrations/check-ide-compat.js +44 -0
- package/scripts/integrations/setup-ide-adapters.js +87 -0
- package/scripts/tools/clickup-preprocess.js +218 -0
- package/scripts/tools/clickup.js +1058 -0
- package/skills/agent-teams/SKILL.md +78 -0
- package/skills/agent-teams/presets/team-all.yaml +14 -0
- package/skills/agent-teams/presets/team-fullstack.yaml +17 -0
- package/skills/agent-teams/presets/team-ide-minimal.yaml +9 -0
- package/skills/agent-teams/presets/team-no-ui.yaml +12 -0
- package/skills/agent-teams/presets/team-qa-focused.yaml +83 -0
- package/skills/clickup/SKILL.md +151 -0
- package/skills/component-dedup/SKILL.md +101 -0
- package/skills/design-to-code/SKILL.md +255 -0
- package/skills/figma-implement-design/SKILL.md +227 -0
- package/skills/figma-make-analyzer/SKILL.md +140 -0
- package/skills/frontend-dev/SKILL.md +271 -0
- package/skills/git-ssh-setup/SKILL.md +164 -0
- package/skills/interface-design/SKILL.md +350 -0
- package/skills/interface-design/references/audit.md +76 -0
- package/skills/interface-design/references/craft-examples.md +134 -0
- package/skills/interface-design/references/critique.md +92 -0
- package/skills/interface-design/references/extract.md +92 -0
- package/skills/interface-design/references/principles.md +348 -0
- package/skills/interface-design/references/templates/system-precision.md +73 -0
- package/skills/interface-design/references/templates/system-warmth.md +67 -0
- package/skills/interface-design/references/validation.md +137 -0
- package/skills/make-code-triage/SKILL.md +135 -0
- package/skills/make-version-diff/SKILL.md +87 -0
- package/skills/plan-to-tasks/SKILL.md +136 -0
- package/skills/react-best-practices/AGENTS.md +2975 -0
- package/skills/react-best-practices/SKILL.md +151 -0
- package/skills/react-best-practices/metadata.json +15 -0
- package/skills/react-best-practices/rules/_sections.md +46 -0
- package/skills/react-best-practices/rules/_template.md +28 -0
- package/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/skills/react-doctor/SKILL.md +74 -0
- package/skills/registry.json +21 -0
- package/skills/sprint-planner/SKILL.md +434 -0
- package/squads/design-delivery/README.md +10 -0
- package/squads/design-delivery/squad.yaml +30 -0
- package/squads/design-delivery/workflows/wf-design-delivery.yaml +27 -0
- package/squads/design-squad/README.md +31 -0
- package/squads/design-squad/agents/brad-frost.md +185 -0
- package/squads/design-squad/agents/dan-mall.md +178 -0
- package/squads/design-squad/agents/dave-malouf.md +198 -0
- package/squads/design-squad/agents/design-chief.md +109 -0
- package/squads/design-squad/agents/design-system-architect.md +109 -0
- package/squads/design-squad/agents/ui-engineer.md +102 -0
- package/squads/design-squad/agents/ux-designer.md +105 -0
- package/squads/design-squad/agents/visual-generator.md +108 -0
- package/squads/design-squad/checklists/output-quality.md +76 -0
- package/squads/design-squad/config/config.yaml +65 -0
- package/squads/design-squad/data/design-patterns-catalog.yaml +276 -0
- package/squads/design-squad/data/routing-catalog.yaml +95 -0
- package/squads/design-squad/squad.yaml +88 -0
- package/squads/design-squad/tasks/audit-design.md +174 -0
- package/squads/design-squad/tasks/create-component-spec.md +185 -0
- package/squads/design-squad/tasks/create-design-system.md +179 -0
- package/squads/design-squad/tasks/design-ux-flow.md +184 -0
- package/squads/design-squad/tasks/diagnose.md +138 -0
- package/squads/design-squad/tasks/generate-handoff.md +186 -0
- package/squads/design-squad/tasks/review.md +133 -0
- package/squads/design-squad/tasks/setup-design-ops.md +177 -0
- package/squads/design-squad/workflows/wf-design-system-creation.yaml +131 -0
- package/squads/design-squad/workflows/wf-feature-design.yaml +114 -0
- package/squads/git-operations/README.md +30 -0
- package/squads/git-operations/squad.yaml +27 -0
- package/squads/git-operations/workflows/wf-safe-commit.yaml +27 -0
- package/squads/git-operations/workflows/wf-ssh-setup.yaml +27 -0
- package/squads/sprint-planning/agents/sprint-chief.md +47 -0
- package/squads/sprint-planning/agents/sprint-planner-agent.md +43 -0
- package/squads/sprint-planning/agents/sprint-tracker.md +43 -0
- package/squads/sprint-planning/agents/task-importer.md +44 -0
- package/squads/sprint-planning/checklists/sprint-readiness.md +27 -0
- package/squads/sprint-planning/config/config.yaml +65 -0
- package/squads/sprint-planning/data/clickup-field-mapping.yaml +94 -0
- package/squads/sprint-planning/squad.yaml +52 -0
- package/squads/sprint-planning/tasks/close-sprint.md +43 -0
- package/squads/sprint-planning/tasks/create-sprint.md +42 -0
- package/squads/sprint-planning/tasks/import-tasks.md +39 -0
- package/squads/sprint-planning/tasks/sync-status.md +31 -0
- package/squads/sprint-planning/workflows/wf-sprint-creation.yaml +59 -0
- package/squads/sprint-planning/workflows/wf-sprint-sync.yaml +35 -0
- package/templates/adr-tmpl.yaml +76 -0
- package/templates/sprint-clickup.template.md +80 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
task: setupDesignOps()
|
|
3
|
+
responsavel: "@dave-malouf"
|
|
4
|
+
responsavel_type: Agent
|
|
5
|
+
atomic_layer: Task
|
|
6
|
+
elicit: true
|
|
7
|
+
|
|
8
|
+
Entrada:
|
|
9
|
+
- campo: team_context
|
|
10
|
+
tipo: string
|
|
11
|
+
origem: User Input
|
|
12
|
+
obrigatorio: true
|
|
13
|
+
- campo: current_pain_points
|
|
14
|
+
tipo: string
|
|
15
|
+
origem: User Input
|
|
16
|
+
obrigatorio: true
|
|
17
|
+
|
|
18
|
+
Saida:
|
|
19
|
+
- campo: designOpsPractice
|
|
20
|
+
tipo: string
|
|
21
|
+
destino: Console
|
|
22
|
+
persistido: false
|
|
23
|
+
|
|
24
|
+
Checklist:
|
|
25
|
+
- "[ ] Current state assessed with bottlenecks identified"
|
|
26
|
+
- "[ ] Design workflow defined with stages, activities, and gates"
|
|
27
|
+
- "[ ] Metrics defined for ongoing health tracking"
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
# Task: DesignOps Practice Setup
|
|
31
|
+
|
|
32
|
+
**Task ID:** DESIGN-003
|
|
33
|
+
**Version:** 1.0.0
|
|
34
|
+
**Command:** `*setup-design-ops`
|
|
35
|
+
**Agent:** Dave Malouf (dave-malouf)
|
|
36
|
+
**Purpose:** Establish a DesignOps practice to scale design quality and team effectiveness.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Inputs
|
|
41
|
+
|
|
42
|
+
| Input | Source | Required |
|
|
43
|
+
|-------|--------|----------|
|
|
44
|
+
| `team_context` | Design team size, structure, maturity | YES |
|
|
45
|
+
| `current_pain_points` | Biggest operational challenges | YES |
|
|
46
|
+
| `tools_in_use` | Current design and collaboration tools | PREFERRED |
|
|
47
|
+
| `engineering_workflow` | How dev team works (agile, kanban, etc.) | PREFERRED |
|
|
48
|
+
| `budget_constraints` | Available budget for tools/hires | NO |
|
|
49
|
+
|
|
50
|
+
## Preconditions
|
|
51
|
+
|
|
52
|
+
1. Design team exists (even if small)
|
|
53
|
+
2. Pain points are identified and acknowledged
|
|
54
|
+
3. Leadership buy-in for improving design operations
|
|
55
|
+
|
|
56
|
+
## Execution Phases
|
|
57
|
+
|
|
58
|
+
### Phase 1: Assess Current State
|
|
59
|
+
|
|
60
|
+
1. Map the current design workflow from brief to shipped product
|
|
61
|
+
2. Identify bottlenecks — where does work get stuck or delayed?
|
|
62
|
+
3. Assess tool landscape — are tools consistent? Redundant? Missing?
|
|
63
|
+
4. Evaluate handoff quality — how well do designs translate to code?
|
|
64
|
+
5. Review meeting and ceremony structure — are design reviews happening?
|
|
65
|
+
6. Assess design documentation practices — is institutional knowledge captured?
|
|
66
|
+
7. Interview/survey the team — what do they need most?
|
|
67
|
+
|
|
68
|
+
### Phase 2: Design Workflow
|
|
69
|
+
|
|
70
|
+
1. Define the design workflow stages:
|
|
71
|
+
- **Discover** — Research, user insights, problem framing
|
|
72
|
+
- **Define** — Requirements, constraints, success criteria
|
|
73
|
+
- **Design** — Exploration, iteration, refinement
|
|
74
|
+
- **Deliver** — Handoff, QA, implementation support
|
|
75
|
+
- **Measure** — Post-launch analysis, iteration planning
|
|
76
|
+
2. For each stage, define:
|
|
77
|
+
- Inputs required (what must exist before starting)
|
|
78
|
+
- Activities (what happens during this stage)
|
|
79
|
+
- Outputs produced (what must exist before moving forward)
|
|
80
|
+
- Review gates (who reviews and what criteria)
|
|
81
|
+
3. Map the workflow to the engineering process — where do they intersect?
|
|
82
|
+
4. Define design sprint cadence — how long is a design cycle?
|
|
83
|
+
5. Establish critique and review rituals:
|
|
84
|
+
- Design critique (weekly, peers)
|
|
85
|
+
- Design review (per milestone, stakeholders)
|
|
86
|
+
- Design QA (pre-ship, designer + engineer)
|
|
87
|
+
|
|
88
|
+
### Phase 3: Define People Ops
|
|
89
|
+
|
|
90
|
+
1. **Role Definitions** — Clear expectations for each design role
|
|
91
|
+
- UX Designer, UI Designer, Design System Engineer, UX Researcher, Design Lead
|
|
92
|
+
2. **Career Framework** — Growth paths for designers
|
|
93
|
+
- IC track: Junior → Mid → Senior → Staff → Principal
|
|
94
|
+
- Management track: Lead → Manager → Director → VP
|
|
95
|
+
3. **Skill Matrix** — Competencies expected at each level
|
|
96
|
+
4. **Onboarding** — How new designers get up to speed
|
|
97
|
+
- Tool setup guide
|
|
98
|
+
- Design system introduction
|
|
99
|
+
- Team norms and rituals
|
|
100
|
+
- First-week, first-month milestones
|
|
101
|
+
5. **Knowledge Management** — How design decisions and rationale are documented
|
|
102
|
+
- Decision records for major design choices
|
|
103
|
+
- Pattern documentation for reusable solutions
|
|
104
|
+
- Research repository for user insights
|
|
105
|
+
|
|
106
|
+
### Phase 4: Implement Tools & Infrastructure
|
|
107
|
+
|
|
108
|
+
1. **Design Tools** — Standardize on a primary design tool (Figma recommended)
|
|
109
|
+
- File organization and naming conventions
|
|
110
|
+
- Library structure for shared components
|
|
111
|
+
- Version control practices
|
|
112
|
+
2. **Collaboration Tools** — How design shares work with engineering and product
|
|
113
|
+
- Design specs and handoff tool
|
|
114
|
+
- Component documentation platform
|
|
115
|
+
- Feedback and annotation tools
|
|
116
|
+
3. **Research Tools** — User testing, analytics, feedback collection
|
|
117
|
+
4. **Asset Management** — Icon library, illustration system, brand assets
|
|
118
|
+
5. **Metrics Dashboard** — Track design ops health:
|
|
119
|
+
- Cycle time (brief to shipped)
|
|
120
|
+
- Rework rate (how often designs change after handoff)
|
|
121
|
+
- Design system adoption rate
|
|
122
|
+
- Team satisfaction scores
|
|
123
|
+
- Accessibility compliance rate
|
|
124
|
+
|
|
125
|
+
## Output Format
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
design_ops:
|
|
129
|
+
architect: "dave-malouf"
|
|
130
|
+
team_size: 0
|
|
131
|
+
maturity_level: "Ad Hoc | Emerging | Defined | Managed | Optimized"
|
|
132
|
+
workflow:
|
|
133
|
+
stages: [discover, define, design, deliver, measure]
|
|
134
|
+
sprint_cadence: "{duration}"
|
|
135
|
+
rituals:
|
|
136
|
+
- name: "{ritual}"
|
|
137
|
+
frequency: "{cadence}"
|
|
138
|
+
participants: ["{roles}"]
|
|
139
|
+
people_ops:
|
|
140
|
+
roles_defined: ["{role list}"]
|
|
141
|
+
career_framework: true
|
|
142
|
+
onboarding_plan: true
|
|
143
|
+
knowledge_management: "{approach}"
|
|
144
|
+
tools:
|
|
145
|
+
design: "{primary tool}"
|
|
146
|
+
collaboration: "{tool}"
|
|
147
|
+
research: "{tool}"
|
|
148
|
+
asset_management: "{tool}"
|
|
149
|
+
metrics:
|
|
150
|
+
cycle_time: "{target}"
|
|
151
|
+
rework_rate: "{target}"
|
|
152
|
+
system_adoption: "{target}"
|
|
153
|
+
team_satisfaction: "{target}"
|
|
154
|
+
implementation_plan:
|
|
155
|
+
week_1_2: ["{immediate setup}"]
|
|
156
|
+
month_1: ["{foundation}"]
|
|
157
|
+
month_3: ["{optimization}"]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Veto Conditions
|
|
161
|
+
|
|
162
|
+
- **NEVER** introduce tools without defining the workflow first — tools serve process, not the reverse
|
|
163
|
+
- **NEVER** skip people ops — design ops fails without clear roles and career paths
|
|
164
|
+
- **NEVER** copy another company's design ops wholesale — adapt to your team's maturity
|
|
165
|
+
- **NEVER** implement everything at once — phase it or the team will be overwhelmed
|
|
166
|
+
- **NEVER** build design ops in isolation from engineering — it must integrate
|
|
167
|
+
|
|
168
|
+
## Completion Criteria
|
|
169
|
+
|
|
170
|
+
- [ ] Current state assessed with bottlenecks identified
|
|
171
|
+
- [ ] Design workflow defined with stages, activities, and gates
|
|
172
|
+
- [ ] Workflow mapped to engineering process
|
|
173
|
+
- [ ] Critique and review rituals established
|
|
174
|
+
- [ ] Role definitions and career framework created
|
|
175
|
+
- [ ] Onboarding plan documented
|
|
176
|
+
- [ ] Tool stack standardized with conventions
|
|
177
|
+
- [ ] Metrics defined for ongoing health tracking
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Design System Creation Workflow
|
|
2
|
+
# From audit through methodology to launch
|
|
3
|
+
|
|
4
|
+
workflow:
|
|
5
|
+
id: wf-design-system-creation
|
|
6
|
+
name: "Criação de Design System"
|
|
7
|
+
trigger: "*design-system-creation"
|
|
8
|
+
entry_agent: design-chief
|
|
9
|
+
estimated_duration: "4-8 hours"
|
|
10
|
+
description: |
|
|
11
|
+
Workflow completo de criação de design system, desde a auditoria inicial até
|
|
12
|
+
seleção de metodologia, definição de tokens, construção de componentes,
|
|
13
|
+
estabelecimento de governança e lançamento. Segue a metodologia atomic design.
|
|
14
|
+
|
|
15
|
+
type: sequential
|
|
16
|
+
sequence:
|
|
17
|
+
- agent: brad-frost
|
|
18
|
+
action: create-design-system
|
|
19
|
+
creates: methodology
|
|
20
|
+
- agent: design-system-architect
|
|
21
|
+
action: create-component-spec
|
|
22
|
+
creates: components
|
|
23
|
+
- agent: dan-mall
|
|
24
|
+
action: create-design-system
|
|
25
|
+
creates: governance
|
|
26
|
+
- agent: design-chief
|
|
27
|
+
action: review
|
|
28
|
+
creates: final_system
|
|
29
|
+
|
|
30
|
+
phases:
|
|
31
|
+
- id: phase_1_audit
|
|
32
|
+
name: "Interface Audit"
|
|
33
|
+
agent: brad-frost
|
|
34
|
+
task: create-design-system.md
|
|
35
|
+
depends_on: []
|
|
36
|
+
description: "Inventory all existing UI elements, identify inconsistencies and patterns"
|
|
37
|
+
checkpoint:
|
|
38
|
+
gate: "Complete component inventory with inconsistencies documented"
|
|
39
|
+
veto: "HALT if no access to existing interface — cannot audit what you cannot see"
|
|
40
|
+
outputs:
|
|
41
|
+
- component_inventory
|
|
42
|
+
- inconsistency_report
|
|
43
|
+
- priority_components
|
|
44
|
+
|
|
45
|
+
- id: phase_2_methodology
|
|
46
|
+
name: "Methodology & Token Architecture"
|
|
47
|
+
agent: brad-frost
|
|
48
|
+
task: create-design-system.md
|
|
49
|
+
depends_on: [phase_1_audit]
|
|
50
|
+
support_agents: [design-system-architect]
|
|
51
|
+
description: "Define atomic design methodology, establish token architecture (global → alias → component)"
|
|
52
|
+
checkpoint:
|
|
53
|
+
gate: "Token naming convention defined, hierarchy established, initial tokens created"
|
|
54
|
+
veto: "HALT if token naming convention is ambiguous or inconsistent"
|
|
55
|
+
outputs:
|
|
56
|
+
- token_architecture
|
|
57
|
+
- naming_conventions
|
|
58
|
+
- color_tokens
|
|
59
|
+
- typography_tokens
|
|
60
|
+
- spacing_tokens
|
|
61
|
+
|
|
62
|
+
- id: phase_3_tokens
|
|
63
|
+
name: "Token Implementation"
|
|
64
|
+
agent: design-system-architect
|
|
65
|
+
task: create-component-spec.md
|
|
66
|
+
depends_on: [phase_2_methodology]
|
|
67
|
+
description: "Implement all design tokens in code with theme support"
|
|
68
|
+
checkpoint:
|
|
69
|
+
gate: "All tokens implemented with light/dark mode and WCAG contrast verified"
|
|
70
|
+
veto: "HALT if contrast ratios fail WCAG AA requirements"
|
|
71
|
+
outputs:
|
|
72
|
+
- token_files
|
|
73
|
+
- theme_configuration
|
|
74
|
+
- contrast_verification
|
|
75
|
+
|
|
76
|
+
- id: phase_4_components
|
|
77
|
+
name: "Component Building"
|
|
78
|
+
agent: brad-frost
|
|
79
|
+
task: create-component-spec.md
|
|
80
|
+
depends_on: [phase_3_tokens]
|
|
81
|
+
support_agents: [design-system-architect, ui-engineer]
|
|
82
|
+
description: "Build atoms, molecules, and organisms following the priority list from audit"
|
|
83
|
+
checkpoint:
|
|
84
|
+
gate: "Core components built with all variants, states, and accessibility requirements"
|
|
85
|
+
veto: "HALT if components use hardcoded values instead of tokens"
|
|
86
|
+
outputs:
|
|
87
|
+
- atom_components
|
|
88
|
+
- molecule_components
|
|
89
|
+
- organism_components
|
|
90
|
+
- component_specs
|
|
91
|
+
|
|
92
|
+
- id: phase_5_governance
|
|
93
|
+
name: "Governance & Documentation"
|
|
94
|
+
agent: dan-mall
|
|
95
|
+
task: create-design-system.md
|
|
96
|
+
depends_on: [phase_4_components]
|
|
97
|
+
support_agents: [dave-malouf]
|
|
98
|
+
description: "Establish governance model, contribution guide, and complete documentation"
|
|
99
|
+
checkpoint:
|
|
100
|
+
gate: "Governance model defined, documentation complete, contribution process clear"
|
|
101
|
+
veto: "HALT if no clear ownership or approval process for component changes"
|
|
102
|
+
outputs:
|
|
103
|
+
- governance_model
|
|
104
|
+
- contribution_guide
|
|
105
|
+
- component_documentation
|
|
106
|
+
- getting_started_guide
|
|
107
|
+
|
|
108
|
+
- id: phase_6_launch
|
|
109
|
+
name: "Launch & Adoption"
|
|
110
|
+
agent: dan-mall
|
|
111
|
+
task: create-design-system.md
|
|
112
|
+
depends_on: [phase_5_governance]
|
|
113
|
+
support_agents: [dave-malouf, design-chief]
|
|
114
|
+
description: "Plan adoption strategy, train teams, launch the design system"
|
|
115
|
+
checkpoint:
|
|
116
|
+
gate: "Design system published, teams trained, adoption metrics established"
|
|
117
|
+
veto: "HALT if no adoption plan exists — a design system nobody uses has no value"
|
|
118
|
+
outputs:
|
|
119
|
+
- published_system
|
|
120
|
+
- training_materials
|
|
121
|
+
- adoption_metrics
|
|
122
|
+
- feedback_channels
|
|
123
|
+
|
|
124
|
+
completion_criteria:
|
|
125
|
+
- "Interface audit completed with priority components identified"
|
|
126
|
+
- "Token architecture defined with naming conventions"
|
|
127
|
+
- "All tokens implemented with theme and contrast verification"
|
|
128
|
+
- "Core components built with variants, states, and accessibility"
|
|
129
|
+
- "Governance model established with clear ownership"
|
|
130
|
+
- "Documentation complete and accessible"
|
|
131
|
+
- "Teams trained and adoption metrics tracking"
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Feature Design Workflow
|
|
2
|
+
# From research through wireframes to implementation
|
|
3
|
+
|
|
4
|
+
workflow:
|
|
5
|
+
id: wf-feature-design
|
|
6
|
+
name: "Design de Funcionalidade"
|
|
7
|
+
trigger: "*feature-design"
|
|
8
|
+
entry_agent: design-chief
|
|
9
|
+
estimated_duration: "2-4 hours"
|
|
10
|
+
description: |
|
|
11
|
+
Workflow completo de design de funcionalidade, desde pesquisa de usuário até wireframing,
|
|
12
|
+
design visual, especificação de implementação e integração com design system.
|
|
13
|
+
|
|
14
|
+
type: sequential
|
|
15
|
+
sequence:
|
|
16
|
+
- agent: ux-designer
|
|
17
|
+
action: design-ux-flow
|
|
18
|
+
creates: wireframes
|
|
19
|
+
- agent: visual-generator
|
|
20
|
+
action: create-component-spec
|
|
21
|
+
creates: visuals
|
|
22
|
+
- agent: ui-engineer
|
|
23
|
+
action: generate-handoff
|
|
24
|
+
creates: handoff
|
|
25
|
+
- agent: brad-frost
|
|
26
|
+
action: create-design-system
|
|
27
|
+
creates: integration
|
|
28
|
+
|
|
29
|
+
phases:
|
|
30
|
+
- id: phase_1_research
|
|
31
|
+
name: "User Research & Discovery"
|
|
32
|
+
agent: ux-designer
|
|
33
|
+
task: design-ux-flow.md
|
|
34
|
+
depends_on: []
|
|
35
|
+
description: "Conduct user research, create personas, map user journeys"
|
|
36
|
+
checkpoint:
|
|
37
|
+
gate: "Research insights documented, personas created, user needs validated"
|
|
38
|
+
veto: "HALT if no user research is conducted — designing without research is guessing"
|
|
39
|
+
outputs:
|
|
40
|
+
- research_insights
|
|
41
|
+
- personas
|
|
42
|
+
- journey_map
|
|
43
|
+
- design_requirements
|
|
44
|
+
|
|
45
|
+
- id: phase_2_wireframe
|
|
46
|
+
name: "Information Architecture & Wireframes"
|
|
47
|
+
agent: ux-designer
|
|
48
|
+
task: design-ux-flow.md
|
|
49
|
+
depends_on: [phase_1_research]
|
|
50
|
+
description: "Define information architecture, create wireframes, design user flows"
|
|
51
|
+
checkpoint:
|
|
52
|
+
gate: "Wireframes cover all key screens, flows include happy and error paths"
|
|
53
|
+
veto: "HALT if wireframes only cover the happy path — error states must be designed"
|
|
54
|
+
outputs:
|
|
55
|
+
- information_architecture
|
|
56
|
+
- wireframes
|
|
57
|
+
- user_flows
|
|
58
|
+
- interaction_specs
|
|
59
|
+
|
|
60
|
+
- id: phase_3_visual
|
|
61
|
+
name: "Visual Design & Component Spec"
|
|
62
|
+
agent: visual-generator
|
|
63
|
+
task: create-component-spec.md
|
|
64
|
+
depends_on: [phase_2_wireframe]
|
|
65
|
+
support_agents: [brad-frost]
|
|
66
|
+
description: "Apply visual design, specify components, ensure design system alignment"
|
|
67
|
+
checkpoint:
|
|
68
|
+
gate: "Visual designs complete with all tokens mapped and WCAG compliance verified"
|
|
69
|
+
veto: "HALT if visual design introduces components that bypass the design system"
|
|
70
|
+
outputs:
|
|
71
|
+
- visual_designs
|
|
72
|
+
- component_specifications
|
|
73
|
+
- token_mapping
|
|
74
|
+
- accessibility_verification
|
|
75
|
+
|
|
76
|
+
- id: phase_4_implement
|
|
77
|
+
name: "Implementation Handoff"
|
|
78
|
+
agent: ui-engineer
|
|
79
|
+
task: generate-handoff.md
|
|
80
|
+
depends_on: [phase_3_visual]
|
|
81
|
+
support_agents: [dan-mall]
|
|
82
|
+
description: "Generate developer handoff documentation with tokens, interactions, and responsive specs"
|
|
83
|
+
checkpoint:
|
|
84
|
+
gate: "Handoff documentation complete with dev review conducted"
|
|
85
|
+
veto: "HALT if handoff lacks interaction specifications or responsive behavior"
|
|
86
|
+
outputs:
|
|
87
|
+
- handoff_documentation
|
|
88
|
+
- token_map
|
|
89
|
+
- interaction_specs
|
|
90
|
+
- asset_exports
|
|
91
|
+
|
|
92
|
+
- id: phase_5_integrate
|
|
93
|
+
name: "Design System Integration"
|
|
94
|
+
agent: brad-frost
|
|
95
|
+
task: create-design-system.md
|
|
96
|
+
depends_on: [phase_4_implement]
|
|
97
|
+
support_agents: [design-system-architect]
|
|
98
|
+
description: "Add new components to design system, update documentation, verify consistency"
|
|
99
|
+
checkpoint:
|
|
100
|
+
gate: "New components integrated into design system with documentation updated"
|
|
101
|
+
veto: "HALT if new components break existing system patterns"
|
|
102
|
+
outputs:
|
|
103
|
+
- updated_design_system
|
|
104
|
+
- new_component_docs
|
|
105
|
+
- regression_check
|
|
106
|
+
|
|
107
|
+
completion_criteria:
|
|
108
|
+
- "User research conducted with insights documented"
|
|
109
|
+
- "Personas and journey maps created"
|
|
110
|
+
- "Wireframes cover all screens, flows, and states"
|
|
111
|
+
- "Visual design applied with design system alignment"
|
|
112
|
+
- "Accessibility verified (WCAG AA minimum)"
|
|
113
|
+
- "Developer handoff complete with all specifications"
|
|
114
|
+
- "New components integrated into design system"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Git Operations Squad
|
|
2
|
+
|
|
3
|
+
Squad para operacoes git seguras com validacao de identidade SSH e quality gate pre-commit.
|
|
4
|
+
|
|
5
|
+
## Agentes
|
|
6
|
+
|
|
7
|
+
| Agente | Papel |
|
|
8
|
+
|--------|-------|
|
|
9
|
+
| devops | SSH setup, validacao de remote, push seguro |
|
|
10
|
+
| dev | Quality gate (tsc + testes), staging, commit |
|
|
11
|
+
|
|
12
|
+
## Workflows
|
|
13
|
+
|
|
14
|
+
| Workflow | Fases |
|
|
15
|
+
|----------|-------|
|
|
16
|
+
| wf-ssh-setup | detect → key-check → configure → validate → identity |
|
|
17
|
+
| wf-safe-commit | validate → pre-check → stage → commit → safe-push |
|
|
18
|
+
|
|
19
|
+
## Triggers
|
|
20
|
+
|
|
21
|
+
- "configurar ssh" → devops (wf-ssh-setup)
|
|
22
|
+
- "commit e push" → dev (wf-safe-commit)
|
|
23
|
+
- "validar ssh" → devops
|
|
24
|
+
|
|
25
|
+
## Dependencias
|
|
26
|
+
|
|
27
|
+
- Skill: `git-ssh-setup` (configuracao SSH)
|
|
28
|
+
- Skill: `commit-dev` (commit com Conventional Commits)
|
|
29
|
+
- Script: `scripts/hooks/pre-commit-validate.js` (quality gate)
|
|
30
|
+
- Config local: `.gos-local/ssh-identity.json` ou `.a8z/local/ssh-identity.json`
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: git-operations
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
short-title: "Git Operations Squad"
|
|
4
|
+
description: "Gerencia operacoes git seguras com validacao de identidade SSH, quality gate pre-commit (tsc + testes) e commits padronizados."
|
|
5
|
+
slashPrefix: "git-ops"
|
|
6
|
+
|
|
7
|
+
components:
|
|
8
|
+
agents:
|
|
9
|
+
- devops.md
|
|
10
|
+
- dev.md
|
|
11
|
+
workflows:
|
|
12
|
+
- wf-ssh-setup.yaml
|
|
13
|
+
- wf-safe-commit.yaml
|
|
14
|
+
|
|
15
|
+
routing_matrix:
|
|
16
|
+
ssh_setup:
|
|
17
|
+
primary: devops
|
|
18
|
+
triggers: ["ssh setup", "configurar ssh", "identidade ssh", "trocar conta github"]
|
|
19
|
+
safe_commit:
|
|
20
|
+
primary: dev
|
|
21
|
+
triggers: ["commit", "push", "commit e push", "safe commit", "commitar"]
|
|
22
|
+
ssh_validation:
|
|
23
|
+
primary: devops
|
|
24
|
+
triggers: ["validar ssh", "verificar remote", "remote url"]
|
|
25
|
+
pre_commit:
|
|
26
|
+
primary: dev
|
|
27
|
+
triggers: ["validar antes do commit", "rodar testes", "tsc", "quality gate"]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
workflow:
|
|
2
|
+
id: wf-safe-commit
|
|
3
|
+
name: "Safe Commit Pipeline"
|
|
4
|
+
entry_agent: dev
|
|
5
|
+
type: sequential
|
|
6
|
+
|
|
7
|
+
phases:
|
|
8
|
+
- id: validate
|
|
9
|
+
name: "Pre-Commit Quality Gate"
|
|
10
|
+
owner: dev
|
|
11
|
+
goal: "Rodar node scripts/hooks/pre-commit-validate.js --json. Se falhar, corrigir erros e re-validar (max 2 tentativas)."
|
|
12
|
+
- id: pre-check
|
|
13
|
+
name: "SSH Identity Check"
|
|
14
|
+
owner: dev
|
|
15
|
+
goal: "Carregar ssh-identity.json, validar que o remote URL usa o alias SSH correto."
|
|
16
|
+
- id: stage
|
|
17
|
+
name: "Stage Changes"
|
|
18
|
+
owner: dev
|
|
19
|
+
goal: "Adicionar mudancas relevantes ao staging area com git add."
|
|
20
|
+
- id: commit
|
|
21
|
+
name: "Create Commit"
|
|
22
|
+
owner: dev
|
|
23
|
+
goal: "Criar commit com Conventional Commits. Alias SSH nao pode aparecer na mensagem."
|
|
24
|
+
- id: safe-push
|
|
25
|
+
name: "Safe Push"
|
|
26
|
+
owner: devops
|
|
27
|
+
goal: "Validar remote URL contra ssh-identity.json, corrigir se necessario, executar git push."
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
workflow:
|
|
2
|
+
id: wf-ssh-setup
|
|
3
|
+
name: "SSH Identity Setup"
|
|
4
|
+
entry_agent: devops
|
|
5
|
+
type: sequential
|
|
6
|
+
|
|
7
|
+
phases:
|
|
8
|
+
- id: detect
|
|
9
|
+
name: "Detect SSH Config"
|
|
10
|
+
owner: devops
|
|
11
|
+
goal: "Verificar se ssh-identity.json existe e se o remote URL ja usa um alias SSH."
|
|
12
|
+
- id: key-check
|
|
13
|
+
name: "Key Availability Check"
|
|
14
|
+
owner: devops
|
|
15
|
+
goal: "Testar conexao SSH com o alias detectado ou solicitado via ssh -T."
|
|
16
|
+
- id: configure
|
|
17
|
+
name: "Configure Workspace"
|
|
18
|
+
owner: devops
|
|
19
|
+
goal: "Gravar ssh-identity.json no diretorio local gitignored (.gos-local/ ou .a8z/local/)."
|
|
20
|
+
- id: validate
|
|
21
|
+
name: "Validate Connection"
|
|
22
|
+
owner: devops
|
|
23
|
+
goal: "Confirmar que git fetch funciona com a identidade configurada."
|
|
24
|
+
- id: identity
|
|
25
|
+
name: "Set Git Identity"
|
|
26
|
+
owner: devops
|
|
27
|
+
goal: "Configurar git user.name e user.email localmente no repositorio."
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# sprint-chief
|
|
2
|
+
|
|
3
|
+
```yaml
|
|
4
|
+
agent:
|
|
5
|
+
name: Sprint Chief
|
|
6
|
+
id: sprint-chief
|
|
7
|
+
title: Sprint Planning Orchestrator
|
|
8
|
+
icon: "\U0001F3AF"
|
|
9
|
+
tier: 0
|
|
10
|
+
whenToUse: >
|
|
11
|
+
Orquestrar o ciclo completo de sprint: coordenar planner, importer e tracker.
|
|
12
|
+
Decidir fluxo, gerenciar handoffs entre agents, escalar problemas.
|
|
13
|
+
|
|
14
|
+
persona:
|
|
15
|
+
role: Sprint Orchestrator
|
|
16
|
+
identity: Coordenador de sprint que garante que todas as fases fluem corretamente
|
|
17
|
+
core_principles:
|
|
18
|
+
- Validar prerequisites antes de iniciar qualquer fase
|
|
19
|
+
- Coordenar handoffs entre agents com contexto completo
|
|
20
|
+
- Garantir que sprint registry esta atualizado
|
|
21
|
+
- Notificar Slack em marcos importantes
|
|
22
|
+
|
|
23
|
+
commands:
|
|
24
|
+
- name: sprint-create
|
|
25
|
+
description: "Orquestrar criacao completa de sprint (plan -> create -> import -> track)"
|
|
26
|
+
- name: sprint-close
|
|
27
|
+
description: "Fechar sprint, mover tasks incompletas, gerar retrospective"
|
|
28
|
+
- name: sprint-review
|
|
29
|
+
description: "Gerar review da sprint com metricas e status"
|
|
30
|
+
|
|
31
|
+
dependencies:
|
|
32
|
+
tools:
|
|
33
|
+
- clickup
|
|
34
|
+
- slack-notify
|
|
35
|
+
agents:
|
|
36
|
+
- sprint-planner-agent
|
|
37
|
+
- sprint-tracker
|
|
38
|
+
- task-importer
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Responsabilidades
|
|
42
|
+
|
|
43
|
+
1. **Pre-flight check:** Verificar env vars, space ID, permissoes
|
|
44
|
+
2. **Orchestration:** Coordenar fluxo create -> import -> track
|
|
45
|
+
3. **Handoffs:** Passar contexto entre agents (folder IDs, task maps)
|
|
46
|
+
4. **Sprint Close:** Detectar tasks abertas, oferecer spillover para proxima sprint
|
|
47
|
+
5. **Notifications:** Enviar resumos formatados no Slack nos marcos
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# sprint-planner-agent
|
|
2
|
+
|
|
3
|
+
```yaml
|
|
4
|
+
agent:
|
|
5
|
+
name: Sprint Planner
|
|
6
|
+
id: sprint-planner-agent
|
|
7
|
+
title: Sprint Planning Specialist
|
|
8
|
+
icon: "\U0001F4CB"
|
|
9
|
+
tier: 1
|
|
10
|
+
whenToUse: >
|
|
11
|
+
Validar sprint plans, verificar schema, criar sprint no ClickUp (folder + lists).
|
|
12
|
+
|
|
13
|
+
persona:
|
|
14
|
+
role: Sprint Planner
|
|
15
|
+
identity: Especialista em estruturar e validar sprints antes da criacao no ClickUp
|
|
16
|
+
core_principles:
|
|
17
|
+
- Validar sprint JSON contra schema antes de criar
|
|
18
|
+
- Verificar que todas tasks tem IDs unicos e prioridades
|
|
19
|
+
- Detectar dependencias circulares
|
|
20
|
+
- Criar folder e lists seguindo naming convention
|
|
21
|
+
|
|
22
|
+
commands:
|
|
23
|
+
- name: validate-plan
|
|
24
|
+
description: "Validar sprint plan JSON contra schema"
|
|
25
|
+
- name: create-sprint
|
|
26
|
+
description: "Criar sprint (folder + lists) no ClickUp"
|
|
27
|
+
|
|
28
|
+
dependencies:
|
|
29
|
+
tools:
|
|
30
|
+
- clickup
|
|
31
|
+
schemas:
|
|
32
|
+
- data/schemas/sprint-clickup.schema.json
|
|
33
|
+
templates:
|
|
34
|
+
- templates/sprint-clickup.template.md
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Workflow
|
|
38
|
+
|
|
39
|
+
1. Receber sprint plan (JSON ou markdown)
|
|
40
|
+
2. Validar contra `data/schemas/sprint-clickup.schema.json`
|
|
41
|
+
3. Verificar IDs unicos, prioridades, dependencias
|
|
42
|
+
4. Executar `clickup.js sprint create` com parametros
|
|
43
|
+
5. Retornar folder_id e list_ids para handoff ao task-importer
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# sprint-tracker
|
|
2
|
+
|
|
3
|
+
```yaml
|
|
4
|
+
agent:
|
|
5
|
+
name: Sprint Tracker
|
|
6
|
+
id: sprint-tracker
|
|
7
|
+
title: Sprint Tracking & Status Specialist
|
|
8
|
+
icon: "\U0001F4CA"
|
|
9
|
+
tier: 1
|
|
10
|
+
whenToUse: >
|
|
11
|
+
Consultar status da sprint no ClickUp, calcular metricas,
|
|
12
|
+
gerar reports e notificar Slack com resumos.
|
|
13
|
+
|
|
14
|
+
persona:
|
|
15
|
+
role: Sprint Tracker
|
|
16
|
+
identity: Analista de progresso que transforma dados ClickUp em insights acionaveis
|
|
17
|
+
core_principles:
|
|
18
|
+
- Agregar metricas de todas as lists da sprint
|
|
19
|
+
- Calcular completion %, velocity, blocked tasks
|
|
20
|
+
- Gerar resumos formatados para Slack (Block Kit)
|
|
21
|
+
- Detectar tasks bloqueadas e alertar
|
|
22
|
+
|
|
23
|
+
commands:
|
|
24
|
+
- name: sprint-status
|
|
25
|
+
description: "Consultar status da sprint ativa"
|
|
26
|
+
- name: sprint-report
|
|
27
|
+
description: "Gerar report detalhado com metricas"
|
|
28
|
+
- name: notify-status
|
|
29
|
+
description: "Enviar resumo de status no Slack"
|
|
30
|
+
|
|
31
|
+
dependencies:
|
|
32
|
+
tools:
|
|
33
|
+
- clickup
|
|
34
|
+
- slack-notify
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Workflow
|
|
38
|
+
|
|
39
|
+
1. Executar `clickup.js sprint status --folder-id X`
|
|
40
|
+
2. Processar resultado: total, done, in-progress, blocked, completion %
|
|
41
|
+
3. Gerar JSON de status para Slack
|
|
42
|
+
4. Executar `slack-notify.js sprint-summary --file status.json`
|
|
43
|
+
5. Alertar se tasks bloqueadas > 0
|