@nextsparkjs/ai-workflow 0.1.0-beta.100
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/LICENSE +21 -0
- package/README.md +115 -0
- package/claude/_docs/workflows-optimizations.md +359 -0
- package/claude/agents/api-tester.md +634 -0
- package/claude/agents/architecture-supervisor.md +1351 -0
- package/claude/agents/backend-developer.md +997 -0
- package/claude/agents/backend-validator.md +417 -0
- package/claude/agents/bdd-docs-writer.md +737 -0
- package/claude/agents/block-developer.md +677 -0
- package/claude/agents/code-reviewer.md +1432 -0
- package/claude/agents/db-developer.md +721 -0
- package/claude/agents/db-validator.md +407 -0
- package/claude/agents/demo-video-generator.md +493 -0
- package/claude/agents/documentation-writer.md +1268 -0
- package/claude/agents/frontend-developer.md +1234 -0
- package/claude/agents/frontend-validator.md +777 -0
- package/claude/agents/functional-validator.md +630 -0
- package/claude/agents/mock-analyst.md +387 -0
- package/claude/agents/product-manager.md +963 -0
- package/claude/agents/qa-automation.md +1762 -0
- package/claude/agents/release-manager.md +634 -0
- package/claude/agents/selectors-translator.md +262 -0
- package/claude/agents/unit-test-writer.md +785 -0
- package/claude/agents/visual-comparator.md +329 -0
- package/claude/agents/workflow-maintainer.md +352 -0
- package/claude/commands/do/README.md +88 -0
- package/claude/commands/do/create-api.md +64 -0
- package/claude/commands/do/create-entity.md +66 -0
- package/claude/commands/do/create-migration.md +64 -0
- package/claude/commands/do/create-plugin.md +56 -0
- package/claude/commands/do/create-theme.md +70 -0
- package/claude/commands/do/mock-data.md +67 -0
- package/claude/commands/do/reset-db.md +71 -0
- package/claude/commands/do/setup-scheduled-action.md +75 -0
- package/claude/commands/do/sync-code-review.md +117 -0
- package/claude/commands/do/update-selectors.md +112 -0
- package/claude/commands/do/use-skills.md +90 -0
- package/claude/commands/do/validate-blocks.md +69 -0
- package/claude/commands/how-to/README.md +261 -0
- package/claude/commands/how-to/add-metadata.md +692 -0
- package/claude/commands/how-to/add-taxonomies.md +806 -0
- package/claude/commands/how-to/add-translations.md +571 -0
- package/claude/commands/how-to/create-api.md +577 -0
- package/claude/commands/how-to/create-block.md +575 -0
- package/claude/commands/how-to/create-child-entities.md +771 -0
- package/claude/commands/how-to/create-entity.md +597 -0
- package/claude/commands/how-to/create-migrations.md +605 -0
- package/claude/commands/how-to/create-plugin.md +654 -0
- package/claude/commands/how-to/customize-app.md +481 -0
- package/claude/commands/how-to/customize-dashboard.md +553 -0
- package/claude/commands/how-to/customize-theme.md +438 -0
- package/claude/commands/how-to/define-features-flows.md +632 -0
- package/claude/commands/how-to/deploy.md +507 -0
- package/claude/commands/how-to/handle-file-uploads.md +746 -0
- package/claude/commands/how-to/implement-search.md +1001 -0
- package/claude/commands/how-to/install-plugins.md +352 -0
- package/claude/commands/how-to/manage-test-coverage.md +984 -0
- package/claude/commands/how-to/run-tests.md +400 -0
- package/claude/commands/how-to/set-app-languages.md +601 -0
- package/claude/commands/how-to/set-plans-and-permissions.md +575 -0
- package/claude/commands/how-to/set-scheduled-actions.md +527 -0
- package/claude/commands/how-to/set-user-roles-and-permissions.md +550 -0
- package/claude/commands/how-to/setup-authentication.md +388 -0
- package/claude/commands/how-to/setup-claude-code.md +440 -0
- package/claude/commands/how-to/setup-database.md +274 -0
- package/claude/commands/how-to/setup-email-providers.md +598 -0
- package/claude/commands/how-to/setup-mobile-dev.md +627 -0
- package/claude/commands/how-to/start.md +500 -0
- package/claude/commands/how-to/use-devtools.md +639 -0
- package/claude/commands/how-to/use-superadmin.md +622 -0
- package/claude/commands/session/README.md +193 -0
- package/claude/commands/session/block-create.md +190 -0
- package/claude/commands/session/block-list.md +203 -0
- package/claude/commands/session/block-update.md +192 -0
- package/claude/commands/session/block-validate.md +218 -0
- package/claude/commands/session/changelog.md +115 -0
- package/claude/commands/session/close.md +225 -0
- package/claude/commands/session/commit.md +174 -0
- package/claude/commands/session/db-entity.md +206 -0
- package/claude/commands/session/db-fix.md +212 -0
- package/claude/commands/session/db-sample.md +206 -0
- package/claude/commands/session/demo.md +178 -0
- package/claude/commands/session/doc-bdd.md +207 -0
- package/claude/commands/session/doc-feature.md +218 -0
- package/claude/commands/session/doc-read.md +225 -0
- package/claude/commands/session/execute.md +204 -0
- package/claude/commands/session/explain.md +202 -0
- package/claude/commands/session/fix-bug.md +210 -0
- package/claude/commands/session/fix-build.md +182 -0
- package/claude/commands/session/fix-test.md +189 -0
- package/claude/commands/session/pending.md +232 -0
- package/claude/commands/session/refine.md +188 -0
- package/claude/commands/session/resume.md +192 -0
- package/claude/commands/session/review.md +192 -0
- package/claude/commands/session/scope-change.md +181 -0
- package/claude/commands/session/start-blocks.md +347 -0
- package/claude/commands/session/start.md +604 -0
- package/claude/commands/session/status.md +169 -0
- package/claude/commands/session/test-fix.md +221 -0
- package/claude/commands/session/test-run.md +203 -0
- package/claude/commands/session/test-write.md +242 -0
- package/claude/commands/session/validate.md +162 -0
- package/claude/config/context.json +40 -0
- package/claude/config/github.json +69 -0
- package/claude/config/github.schema.json +106 -0
- package/claude/config/team.json +46 -0
- package/claude/config/team.schema.json +106 -0
- package/claude/config/workspace.json +43 -0
- package/claude/config/workspace.schema.json +75 -0
- package/claude/skills/README.md +228 -0
- package/claude/skills/accessibility/SKILL.md +573 -0
- package/claude/skills/api-bypass-layers/SKILL.md +550 -0
- package/claude/skills/asana-integration/SKILL.md +499 -0
- package/claude/skills/better-auth/SKILL.md +666 -0
- package/claude/skills/billing-subscriptions/SKILL.md +660 -0
- package/claude/skills/block-decision-matrix/SKILL.md +359 -0
- package/claude/skills/clickup-integration/SKILL.md +434 -0
- package/claude/skills/core-theme-responsibilities/SKILL.md +485 -0
- package/claude/skills/create-plugin/SKILL.md +425 -0
- package/claude/skills/create-theme/SKILL.md +331 -0
- package/claude/skills/cypress-api/SKILL.md +511 -0
- package/claude/skills/cypress-api/scripts/generate-api-controller.py +329 -0
- package/claude/skills/cypress-api/scripts/generate-api-test.py +930 -0
- package/claude/skills/cypress-e2e/SKILL.md +526 -0
- package/claude/skills/cypress-e2e/scripts/extract-selectors.py +383 -0
- package/claude/skills/cypress-e2e/scripts/generate-uat-test.py +788 -0
- package/claude/skills/cypress-selectors/SKILL.md +309 -0
- package/claude/skills/cypress-selectors/scripts/extract-missing.py +243 -0
- package/claude/skills/cypress-selectors/scripts/generate-block-selectors.py +283 -0
- package/claude/skills/cypress-selectors/scripts/validate-selectors.py +145 -0
- package/claude/skills/database-migrations/SKILL.md +335 -0
- package/claude/skills/database-migrations/scripts/generate-sample-data.py +284 -0
- package/claude/skills/database-migrations/scripts/validate-migration.py +323 -0
- package/claude/skills/design-system/SKILL.md +682 -0
- package/claude/skills/documentation/SKILL.md +540 -0
- package/claude/skills/entity-api/SKILL.md +482 -0
- package/claude/skills/entity-system/SKILL.md +635 -0
- package/claude/skills/entity-system/scripts/generate-child-migration.py +298 -0
- package/claude/skills/entity-system/scripts/generate-metas-migration.py +233 -0
- package/claude/skills/entity-system/scripts/generate-migration.py +382 -0
- package/claude/skills/entity-system/scripts/generate-sample-data.py +418 -0
- package/claude/skills/entity-system/scripts/scaffold-entity.py +661 -0
- package/claude/skills/github/SKILL.md +467 -0
- package/claude/skills/i18n-nextintl/SKILL.md +302 -0
- package/claude/skills/i18n-nextintl/scripts/add-translation.py +243 -0
- package/claude/skills/i18n-nextintl/scripts/extract-hardcoded.py +246 -0
- package/claude/skills/i18n-nextintl/scripts/validate-translations.py +260 -0
- package/claude/skills/impact-analysis/SKILL.md +203 -0
- package/claude/skills/jest-unit/SKILL.md +306 -0
- package/claude/skills/jest-unit/references/component-testing.md +371 -0
- package/claude/skills/jest-unit/references/mocking-patterns.md +380 -0
- package/claude/skills/jest-unit/references/service-hook-testing.md +454 -0
- package/claude/skills/jira-integration/SKILL.md +539 -0
- package/claude/skills/media-library/SKILL.md +743 -0
- package/claude/skills/mock-analysis/SKILL.md +276 -0
- package/claude/skills/monorepo-architecture/SKILL.md +162 -0
- package/claude/skills/nextjs-api-development/SKILL.md +364 -0
- package/claude/skills/nextjs-api-development/scripts/generate-crud-tests.py +456 -0
- package/claude/skills/nextjs-api-development/scripts/scaffold-endpoint.py +481 -0
- package/claude/skills/nextjs-api-development/scripts/validate-api.py +283 -0
- package/claude/skills/notion-integration/SKILL.md +641 -0
- package/claude/skills/npm-development-workflow/SKILL.md +480 -0
- package/claude/skills/page-builder-blocks/SKILL.md +530 -0
- package/claude/skills/page-builder-blocks/scripts/scaffold-block.py +444 -0
- package/claude/skills/permissions-system/SKILL.md +619 -0
- package/claude/skills/plugins/SKILL.md +340 -0
- package/claude/skills/plugins/references/plugin-templates.md +414 -0
- package/claude/skills/plugins/references/plugin-testing.md +353 -0
- package/claude/skills/plugins/references/plugin-types.md +198 -0
- package/claude/skills/plugins/scripts/scaffold-plugin.py +443 -0
- package/claude/skills/pom-patterns/SKILL.md +452 -0
- package/claude/skills/pom-patterns/scripts/generate-pom.py +392 -0
- package/claude/skills/rate-limiting/SKILL.md +342 -0
- package/claude/skills/react-best-practices/AGENTS.md +2410 -0
- package/claude/skills/react-best-practices/README.md +123 -0
- package/claude/skills/react-best-practices/SKILL.md +125 -0
- package/claude/skills/react-best-practices/metadata.json +15 -0
- package/claude/skills/react-best-practices/rules/_sections.md +46 -0
- package/claude/skills/react-best-practices/rules/_template.md +28 -0
- package/claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/claude/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/claude/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/claude/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/claude/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/claude/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/claude/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/claude/skills/react-patterns/SKILL.md +688 -0
- package/claude/skills/registry-system/SKILL.md +331 -0
- package/claude/skills/scheduled-actions/SKILL.md +671 -0
- package/claude/skills/scope-enforcement/SKILL.md +542 -0
- package/claude/skills/scope-enforcement/scripts/validate-scope.py +357 -0
- package/claude/skills/server-actions/SKILL.md +493 -0
- package/claude/skills/service-layer/SKILL.md +587 -0
- package/claude/skills/session-management/SKILL.md +266 -0
- package/claude/skills/session-management/scripts/create-session.py +166 -0
- package/claude/skills/session-management/scripts/iteration-close.sh +105 -0
- package/claude/skills/session-management/scripts/iteration-init.sh +180 -0
- package/claude/skills/session-management/scripts/session-archive.sh +87 -0
- package/claude/skills/session-management/scripts/session-close.sh +133 -0
- package/claude/skills/session-management/scripts/session-init.sh +225 -0
- package/claude/skills/session-management/scripts/session-list.sh +163 -0
- package/claude/skills/session-management/scripts/split-plan.sh +116 -0
- package/claude/skills/shadcn-components/SKILL.md +586 -0
- package/claude/skills/shadcn-theming/SKILL.md +446 -0
- package/claude/skills/suspense-loading/SKILL.md +280 -0
- package/claude/skills/tailwind-theming/SKILL.md +507 -0
- package/claude/skills/tanstack-query/SKILL.md +608 -0
- package/claude/skills/test-coverage/SKILL.md +239 -0
- package/claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/claude/skills/zod-validation/SKILL.md +537 -0
- package/claude/templates/blocks/progress.md +86 -0
- package/claude/templates/iteration/changes.md +61 -0
- package/claude/templates/iteration/progress.md +55 -0
- package/claude/templates/log.md +31 -0
- package/claude/templates/story/context.md +77 -0
- package/claude/templates/story/pendings.md +37 -0
- package/claude/templates/story/plan.md +299 -0
- package/claude/templates/story/requirements.md +109 -0
- package/claude/templates/story/scope.json +10 -0
- package/claude/templates/story/tests.md +91 -0
- package/claude/templates/task/progress.md +58 -0
- package/claude/templates/task/requirements.md +54 -0
- package/claude/workflows/README.md +154 -0
- package/claude/workflows/blocks.md +614 -0
- package/claude/workflows/story.md +1207 -0
- package/claude/workflows/task.md +927 -0
- package/claude/workflows/tweak.md +527 -0
- package/cursor/.gitkeep +0 -0
- package/package.json +35 -0
- package/scripts/postinstall.mjs +198 -0
- package/scripts/setup.mjs +282 -0
- package/scripts/sync.mjs +209 -0
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github
|
|
3
|
+
description: |
|
|
4
|
+
GitHub workflow patterns for branch management, commits, and pull requests.
|
|
5
|
+
Covers gitflow, branch naming conventions, commit messages, and PR creation.
|
|
6
|
+
Use this skill for any Git/GitHub operations following project conventions.
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# GitHub Workflow Skill
|
|
12
|
+
|
|
13
|
+
Git and GitHub workflow patterns with configurable conventions.
|
|
14
|
+
|
|
15
|
+
## Architecture Overview
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
19
|
+
│ GITHUB WORKFLOW │
|
|
20
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
21
|
+
│ │
|
|
22
|
+
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
23
|
+
│ │ Claude │────►│ github.json │────►│ gh CLI │ │
|
|
24
|
+
│ │ Session │ │ (config) │ │ (commands) │ │
|
|
25
|
+
│ └─────────────┘ └──────────────┘ └──────────────┘ │
|
|
26
|
+
│ │ │ │ │
|
|
27
|
+
│ ▼ ▼ ▼ │
|
|
28
|
+
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
29
|
+
│ │ Task │ │ Gitflow │ │ GitHub │ │
|
|
30
|
+
│ │ Manager │◄───►│ Branches │────►│ Remote │ │
|
|
31
|
+
│ │ (ClickUp) │ │ │ │ │ │
|
|
32
|
+
│ └─────────────┘ └──────────────┘ └──────────────┘ │
|
|
33
|
+
│ │
|
|
34
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## When to Use This Skill
|
|
40
|
+
|
|
41
|
+
- Creating feature, bugfix, or hotfix branches
|
|
42
|
+
- Making commits with proper conventions
|
|
43
|
+
- Creating pull requests with correct format
|
|
44
|
+
- Promoting code between environments (develop → qa → main)
|
|
45
|
+
- Understanding project's gitflow configuration
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Configuration
|
|
50
|
+
|
|
51
|
+
### Config Files
|
|
52
|
+
|
|
53
|
+
| File | Purpose |
|
|
54
|
+
|------|---------|
|
|
55
|
+
| `.claude/config/github.json` | Git workflow, branches, commits, PRs |
|
|
56
|
+
| `.claude/config/team.json` | Team members, roles, permissions |
|
|
57
|
+
| `.claude/config/workspace.json` | Task manager integration |
|
|
58
|
+
|
|
59
|
+
### Issue Key Integration
|
|
60
|
+
|
|
61
|
+
The issue key format comes from the task manager configured in `.claude/config/workspace.json`:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
// Read task manager provider
|
|
65
|
+
const workspace = await Read('.claude/config/workspace.json')
|
|
66
|
+
const provider = workspace.taskManager.provider // "clickup", "jira", etc.
|
|
67
|
+
|
|
68
|
+
// Issue key formats by provider:
|
|
69
|
+
// - ClickUp: "CU-abc123" or task ID
|
|
70
|
+
// - Jira: "PROJECT-123"
|
|
71
|
+
// - GitHub Issues: "#123"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Gitflow Configuration
|
|
77
|
+
|
|
78
|
+
### Default Flow
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
feature/* ──► develop ──► qa ──► main
|
|
82
|
+
│
|
|
83
|
+
hotfix/* ─────┴─────────────────► main
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Environment Branches
|
|
87
|
+
|
|
88
|
+
| Branch | Purpose | Protected By |
|
|
89
|
+
|--------|---------|--------------|
|
|
90
|
+
| `main` | Production | qa |
|
|
91
|
+
| `qa` | QA/Staging | develop |
|
|
92
|
+
| `develop` | Integration | feature branches |
|
|
93
|
+
|
|
94
|
+
### Configuration Example
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"gitflow": {
|
|
99
|
+
"environments": ["develop", "qa", "main"],
|
|
100
|
+
"featureBranch": {
|
|
101
|
+
"baseBranch": "main",
|
|
102
|
+
"targetBranch": "develop"
|
|
103
|
+
},
|
|
104
|
+
"hotfixBranch": {
|
|
105
|
+
"baseBranch": "main",
|
|
106
|
+
"targetBranch": "main",
|
|
107
|
+
"skipEnvironments": true
|
|
108
|
+
},
|
|
109
|
+
"promotionFlow": {
|
|
110
|
+
"develop": "qa",
|
|
111
|
+
"qa": "main"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Branch Operations
|
|
120
|
+
|
|
121
|
+
### Creating a Branch
|
|
122
|
+
|
|
123
|
+
**Step 1: Read Configuration**
|
|
124
|
+
|
|
125
|
+
```javascript
|
|
126
|
+
const github = await Read('.claude/config/github.json')
|
|
127
|
+
const team = await Read('.claude/config/team.json')
|
|
128
|
+
|
|
129
|
+
// Resolve active user: git config → CLAUDE_USER env → single-member auto
|
|
130
|
+
const gitName = exec('git config user.name')
|
|
131
|
+
const gitEmail = exec('git config user.email')
|
|
132
|
+
let activeUser = team.members.find(m => m.name === gitName || m.email === gitEmail)
|
|
133
|
+
if (!activeUser) {
|
|
134
|
+
const envUser = process.env.CLAUDE_USER
|
|
135
|
+
if (envUser) activeUser = team.members.find(m => m.name === envUser)
|
|
136
|
+
}
|
|
137
|
+
if (!activeUser && team.members.length === 1) activeUser = team.members[0]
|
|
138
|
+
const initials = activeUser.initials // "pc"
|
|
139
|
+
|
|
140
|
+
const branchType = "feature" // or "bugfix", "hotfix", "chore"
|
|
141
|
+
const typeConfig = github.branches.types[branchType]
|
|
142
|
+
const baseBranch = typeConfig.base // "main"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Step 2: Get Issue Key**
|
|
146
|
+
|
|
147
|
+
```javascript
|
|
148
|
+
// From active session or ask user
|
|
149
|
+
const issueKey = session.taskId || await AskUser("Issue key?")
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Step 3: Build Branch Name**
|
|
153
|
+
|
|
154
|
+
Pattern: `{type}/{issue-key}-{description}-{initials}`
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Example
|
|
158
|
+
git checkout main
|
|
159
|
+
git pull origin main
|
|
160
|
+
git checkout -b feature/CU-abc123-add-user-auth-pc
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Branch Naming Convention
|
|
164
|
+
|
|
165
|
+
| Component | Required | Example |
|
|
166
|
+
|-----------|----------|---------|
|
|
167
|
+
| Type | Yes | `feature`, `bugfix`, `hotfix`, `chore` |
|
|
168
|
+
| Issue Key | Yes* | `CU-abc123`, `PROJ-456` |
|
|
169
|
+
| Description | Yes | `add-user-auth` (max 4-5 words, hyphens) |
|
|
170
|
+
| Initials | Yes | `pc` (from team config) |
|
|
171
|
+
|
|
172
|
+
*If `commits.requireIssueKey` is false, can be omitted.
|
|
173
|
+
|
|
174
|
+
### Valid Examples
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
feature/CU-abc123-add-user-authentication-pc
|
|
178
|
+
bugfix/CU-def456-fix-login-validation-jd
|
|
179
|
+
hotfix/CU-ghi789-critical-security-patch-pc
|
|
180
|
+
chore/CU-jkl012-update-dependencies-jd
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Invalid Examples
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
feature/add-auth # Missing issue key and initials
|
|
187
|
+
CU-abc123-new-feature # Missing type prefix
|
|
188
|
+
feature/CU-abc123_add_auth_pc # Underscores instead of hyphens
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Commit Operations
|
|
194
|
+
|
|
195
|
+
### Commit Message Convention
|
|
196
|
+
|
|
197
|
+
Pattern: `[{issue-key}] {description}`
|
|
198
|
+
|
|
199
|
+
**Step 1: Stage Changes**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
git add .
|
|
203
|
+
# Or specific files
|
|
204
|
+
git add src/components/Login.tsx
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Step 2: Create Commit**
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
git commit -m "[CU-abc123] Add user authentication form"
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Suggested Prefixes
|
|
214
|
+
|
|
215
|
+
| Prefix | Use When |
|
|
216
|
+
|--------|----------|
|
|
217
|
+
| Add | New feature or file |
|
|
218
|
+
| Fix | Bug fix |
|
|
219
|
+
| Update | Modifying existing functionality |
|
|
220
|
+
| Refactor | Code restructuring without behavior change |
|
|
221
|
+
| Remove | Deleting code or features |
|
|
222
|
+
| Improve | Performance or UX enhancements |
|
|
223
|
+
| Implement | Completing a feature |
|
|
224
|
+
|
|
225
|
+
### Valid Examples
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
[CU-abc123] Add login form validation
|
|
229
|
+
[CU-abc123] Fix password reset flow
|
|
230
|
+
[CU-abc123] Update user profile API endpoint
|
|
231
|
+
[CU-abc123] Refactor authentication middleware
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Commit Locally by Default
|
|
235
|
+
|
|
236
|
+
**IMPORTANT:** Commits should be LOCAL ONLY unless user explicitly requests push.
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Local commit (default)
|
|
240
|
+
git commit -m "[CU-abc123] Add feature"
|
|
241
|
+
|
|
242
|
+
# Push only when requested
|
|
243
|
+
git push origin feature/CU-abc123-add-feature-pc
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Pull Request Operations
|
|
249
|
+
|
|
250
|
+
### Creating a PR
|
|
251
|
+
|
|
252
|
+
**Step 1: Push Branch**
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
git push -u origin feature/CU-abc123-add-user-auth-pc
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
**Step 2: Select Reviewer**
|
|
259
|
+
|
|
260
|
+
```javascript
|
|
261
|
+
// Read team from config
|
|
262
|
+
const team = await Read('.claude/config/team.json')
|
|
263
|
+
const reviewers = team.members.filter(m => m.permissions.canReview)
|
|
264
|
+
|
|
265
|
+
// Present options to user
|
|
266
|
+
const reviewer = await AskUser({
|
|
267
|
+
question: "Who should review this PR?",
|
|
268
|
+
options: reviewers.map(m => ({ label: m.name, value: m.ids.github }))
|
|
269
|
+
})
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
**Step 3: Create PR**
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
gh pr create \
|
|
276
|
+
--title "[CU-abc123] Add user authentication" \
|
|
277
|
+
--body "## Description
|
|
278
|
+
Add user authentication form with validation.
|
|
279
|
+
|
|
280
|
+
## Changes
|
|
281
|
+
- Add LoginForm component
|
|
282
|
+
- Add validation schema
|
|
283
|
+
- Add auth API endpoint
|
|
284
|
+
|
|
285
|
+
## Testing
|
|
286
|
+
- [ ] Test valid login
|
|
287
|
+
- [ ] Test invalid credentials
|
|
288
|
+
- [ ] Test password reset
|
|
289
|
+
|
|
290
|
+
## Related Issues
|
|
291
|
+
- CU-abc123" \
|
|
292
|
+
--base develop \
|
|
293
|
+
--reviewer "capellopablo"
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Step 4: Share PR Link**
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
PR_URL=$(gh pr view --json url -q .url)
|
|
300
|
+
echo "Pull Request created: $PR_URL"
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### PR Title Convention
|
|
304
|
+
|
|
305
|
+
Pattern: `[{issue-key}] {description}`
|
|
306
|
+
|
|
307
|
+
| Valid | Invalid |
|
|
308
|
+
|-------|---------|
|
|
309
|
+
| `[CU-abc123] Add user auth` | `CU-abc123 - Add auth` |
|
|
310
|
+
| `[PROJ-456] Fix login bug` | `[proj-456] fix login` |
|
|
311
|
+
|
|
312
|
+
### PR Base Branch
|
|
313
|
+
|
|
314
|
+
| Branch Type | Base Branch |
|
|
315
|
+
|-------------|-------------|
|
|
316
|
+
| feature/* | develop |
|
|
317
|
+
| bugfix/* | develop |
|
|
318
|
+
| hotfix/* | main |
|
|
319
|
+
| chore/* | develop |
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Environment Promotion
|
|
324
|
+
|
|
325
|
+
### Promoting Code Between Environments
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
develop ──► qa ──► main
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Step 1: Create Promotion PR**
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# From develop to qa
|
|
335
|
+
gh pr create \
|
|
336
|
+
--title "Promote develop to qa" \
|
|
337
|
+
--body "Environment promotion" \
|
|
338
|
+
--base qa \
|
|
339
|
+
--head develop
|
|
340
|
+
|
|
341
|
+
# From qa to main
|
|
342
|
+
gh pr create \
|
|
343
|
+
--title "Promote qa to main" \
|
|
344
|
+
--body "Environment promotion" \
|
|
345
|
+
--base main \
|
|
346
|
+
--head qa
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Step 2: Merge After Approval**
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
gh pr merge --squash
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Common Commands Reference
|
|
358
|
+
|
|
359
|
+
### Branch Operations
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
# List branches
|
|
363
|
+
git branch -a
|
|
364
|
+
|
|
365
|
+
# Switch branch
|
|
366
|
+
git checkout develop
|
|
367
|
+
|
|
368
|
+
# Delete local branch
|
|
369
|
+
git branch -d feature/CU-abc123-old-feature-pc
|
|
370
|
+
|
|
371
|
+
# Delete remote branch
|
|
372
|
+
git push origin --delete feature/CU-abc123-old-feature-pc
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### PR Operations
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Check PR status
|
|
379
|
+
gh pr status
|
|
380
|
+
|
|
381
|
+
# View PR details
|
|
382
|
+
gh pr view
|
|
383
|
+
|
|
384
|
+
# Add reviewers
|
|
385
|
+
gh pr edit --add-reviewer "username1,username2"
|
|
386
|
+
|
|
387
|
+
# Merge PR
|
|
388
|
+
gh pr merge --squash
|
|
389
|
+
|
|
390
|
+
# Close PR without merging
|
|
391
|
+
gh pr close
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Commit Operations
|
|
395
|
+
|
|
396
|
+
```bash
|
|
397
|
+
# View recent commits
|
|
398
|
+
git log --oneline -10
|
|
399
|
+
|
|
400
|
+
# Amend last commit (only if not pushed)
|
|
401
|
+
git commit --amend -m "[CU-abc123] Updated message"
|
|
402
|
+
|
|
403
|
+
# Undo last commit (keep changes)
|
|
404
|
+
git reset --soft HEAD~1
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## Decision Tree
|
|
410
|
+
|
|
411
|
+
```
|
|
412
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
413
|
+
│ WHAT DO YOU NEED TO DO? │
|
|
414
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
415
|
+
│ │
|
|
416
|
+
│ Start new work? │
|
|
417
|
+
│ └─► Create branch from main │
|
|
418
|
+
│ └─► git checkout -b {type}/{issue}-{desc}-{initials} │
|
|
419
|
+
│ │
|
|
420
|
+
│ Save progress? │
|
|
421
|
+
│ └─► Commit locally │
|
|
422
|
+
│ └─► git commit -m "[{issue}] {description}" │
|
|
423
|
+
│ │
|
|
424
|
+
│ Ready for review? │
|
|
425
|
+
│ └─► Push & create PR │
|
|
426
|
+
│ └─► git push -u origin {branch} │
|
|
427
|
+
│ └─► gh pr create --base develop │
|
|
428
|
+
│ │
|
|
429
|
+
│ Urgent fix needed? │
|
|
430
|
+
│ └─► Create hotfix branch from main │
|
|
431
|
+
│ └─► git checkout -b hotfix/{issue}-{desc}-{initials} │
|
|
432
|
+
│ └─► PR directly to main │
|
|
433
|
+
│ │
|
|
434
|
+
│ Promote to next env? │
|
|
435
|
+
│ └─► Create promotion PR │
|
|
436
|
+
│ └─► gh pr create --base {next-env} --head {current-env} │
|
|
437
|
+
│ │
|
|
438
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Checklist Templates
|
|
444
|
+
|
|
445
|
+
### Branch Creation Checklist
|
|
446
|
+
|
|
447
|
+
- [ ] On latest main: `git checkout main && git pull`
|
|
448
|
+
- [ ] Branch name follows pattern
|
|
449
|
+
- [ ] Issue key is valid
|
|
450
|
+
- [ ] Description is concise (4-5 words max)
|
|
451
|
+
- [ ] Initials match team config
|
|
452
|
+
|
|
453
|
+
### Commit Checklist
|
|
454
|
+
|
|
455
|
+
- [ ] Message follows pattern: `[{issue}] {description}`
|
|
456
|
+
- [ ] Description starts with verb (Add, Fix, Update...)
|
|
457
|
+
- [ ] Changes are related to single issue
|
|
458
|
+
- [ ] No secrets or credentials committed
|
|
459
|
+
|
|
460
|
+
### PR Checklist
|
|
461
|
+
|
|
462
|
+
- [ ] Branch pushed to remote
|
|
463
|
+
- [ ] Title follows pattern
|
|
464
|
+
- [ ] Description filled with changes
|
|
465
|
+
- [ ] Testing steps documented
|
|
466
|
+
- [ ] Reviewer selected
|
|
467
|
+
- [ ] Base branch is correct (develop/main)
|