@jakkrichm/create-nexus-devflow 2.0.20 → 2.0.21
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/dist/lib/update.js +19 -8
- package/dist/lib/update.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/00-discover/SKILL.md +28 -116
- package/template/.agents/skills/40-execute/SKILL.md +1 -1
- package/template/.agents/skills/50-verify/SKILL.md +28 -161
- package/template/.agents/skills/60-report/SKILL.md +19 -92
- package/template/.agents/skills/70-release/SKILL.md +36 -11
- package/template/.agents/skills/check/SKILL.md +19 -7
- package/template/.agents/skills/complete/SKILL.md +21 -10
- package/template/.claude/skills/00-discover/SKILL.md +28 -116
- package/template/.claude/skills/40-execute/SKILL.md +1 -1
- package/template/.claude/skills/50-verify/SKILL.md +28 -161
- package/template/.claude/skills/60-report/SKILL.md +19 -92
- package/template/.claude/skills/70-release/SKILL.md +36 -11
- package/template/.claude/skills/check/SKILL.md +19 -7
- package/template/.claude/skills/complete/SKILL.md +21 -10
- package/template/AGENTS.md +1 -1
- package/template/devflow/context/coding-standards.md +40 -29
- package/template/.agents/skills/agent/SKILL.md +0 -165
- package/template/.agents/skills/api-and-interface-design/SKILL.md +0 -294
- package/template/.agents/skills/app-builder/SKILL.md +0 -75
- package/template/.agents/skills/app-builder/agent-coordination.md +0 -71
- package/template/.agents/skills/app-builder/feature-building.md +0 -53
- package/template/.agents/skills/app-builder/project-detection.md +0 -34
- package/template/.agents/skills/app-builder/scaffolding.md +0 -118
- package/template/.agents/skills/app-builder/tech-stack.md +0 -40
- package/template/.agents/skills/app-builder/templates/SKILL.md +0 -39
- package/template/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
- package/template/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
- package/template/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
- package/template/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
- package/template/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
- package/template/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
- package/template/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
- package/template/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
- package/template/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
- package/template/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
- package/template/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
- package/template/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
- package/template/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
- package/template/.agents/skills/architecture/SKILL.md +0 -55
- package/template/.agents/skills/architecture/context-discovery.md +0 -43
- package/template/.agents/skills/architecture/examples.md +0 -94
- package/template/.agents/skills/architecture/pattern-selection.md +0 -68
- package/template/.agents/skills/architecture/patterns-reference.md +0 -50
- package/template/.agents/skills/architecture/trade-off-analysis.md +0 -77
- package/template/.agents/skills/bash-linux/SKILL.md +0 -199
- package/template/.agents/skills/behavioral-modes/SKILL.md +0 -242
- package/template/.agents/skills/brainstorm/SKILL.md +0 -168
- package/template/.agents/skills/changelog/SKILL.md +0 -109
- package/template/.agents/skills/codebase-design/DEEPENING.md +0 -24
- package/template/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +0 -28
- package/template/.agents/skills/codebase-design/SKILL.md +0 -58
- package/template/.agents/skills/commit/SKILL.md +0 -59
- package/template/.agents/skills/competitor-analysis/SKILL.md +0 -66
- package/template/.agents/skills/context-engineering/SKILL.md +0 -290
- package/template/.agents/skills/database-design/SKILL.md +0 -52
- package/template/.agents/skills/database-design/database-selection.md +0 -43
- package/template/.agents/skills/database-design/indexing.md +0 -39
- package/template/.agents/skills/database-design/migrations.md +0 -48
- package/template/.agents/skills/database-design/optimization.md +0 -36
- package/template/.agents/skills/database-design/orm-selection.md +0 -30
- package/template/.agents/skills/database-design/schema-design.md +0 -56
- package/template/.agents/skills/database-design/scripts/schema_validator.py +0 -172
- package/template/.agents/skills/deploy/SKILL.md +0 -63
- package/template/.agents/skills/documentation-and-adrs/SKILL.md +0 -278
- package/template/.agents/skills/domain-modeling/ADR-FORMAT.md +0 -47
- package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
- package/template/.agents/skills/domain-modeling/SKILL.md +0 -74
- package/template/.agents/skills/followup/SKILL.md +0 -83
- package/template/.agents/skills/frontend-ui-engineering/SKILL.md +0 -326
- package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +0 -159
- package/template/.agents/skills/goal/SKILL.md +0 -148
- package/template/.agents/skills/handoff/SKILL.md +0 -46
- package/template/.agents/skills/help/SKILL.md +0 -253
- package/template/.agents/skills/i18n-localization/SKILL.md +0 -154
- package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +0 -241
- package/template/.agents/skills/insight/SKILL.md +0 -42
- package/template/.agents/skills/issue-triage/SKILL.md +0 -115
- package/template/.agents/skills/lint-and-validate/SKILL.md +0 -45
- package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +0 -184
- package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +0 -173
- package/template/.agents/skills/mcp-builder/SKILL.md +0 -176
- package/template/.agents/skills/merge/SKILL.md +0 -76
- package/template/.agents/skills/mobile-design/SKILL.md +0 -394
- package/template/.agents/skills/mobile-design/decision-trees.md +0 -516
- package/template/.agents/skills/mobile-design/mobile-backend.md +0 -491
- package/template/.agents/skills/mobile-design/mobile-color-system.md +0 -420
- package/template/.agents/skills/mobile-design/mobile-debugging.md +0 -122
- package/template/.agents/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/template/.agents/skills/mobile-design/mobile-navigation.md +0 -458
- package/template/.agents/skills/mobile-design/mobile-performance.md +0 -767
- package/template/.agents/skills/mobile-design/mobile-testing.md +0 -356
- package/template/.agents/skills/mobile-design/mobile-typography.md +0 -433
- package/template/.agents/skills/mobile-design/platform-android.md +0 -666
- package/template/.agents/skills/mobile-design/platform-ios.md +0 -561
- package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +0 -670
- package/template/.agents/skills/mobile-design/touch-psychology.md +0 -537
- package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/template/.agents/skills/nextjs-react-expert/SKILL.md +0 -286
- package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +0 -222
- package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +0 -252
- package/template/.agents/skills/nodejs-best-practices/SKILL.md +0 -333
- package/template/.agents/skills/package-json-generator/SKILL.md +0 -60
- package/template/.agents/skills/package-json-generator/scripts/generate.js +0 -120
- package/template/.agents/skills/package-json-generator/scripts/run.sh +0 -19
- package/template/.agents/skills/parallel-agents/SKILL.md +0 -144
- package/template/.agents/skills/performance-optimization/SKILL.md +0 -299
- package/template/.agents/skills/performance-optimization/performance-checklist.md +0 -113
- package/template/.agents/skills/powershell-windows/SKILL.md +0 -167
- package/template/.agents/skills/pr/SKILL.md +0 -93
- package/template/.agents/skills/prd/SKILL.md +0 -127
- package/template/.agents/skills/preview/SKILL.md +0 -42
- package/template/.agents/skills/python-patterns/SKILL.md +0 -441
- package/template/.agents/skills/research/SKILL.md +0 -143
- package/template/.agents/skills/review/SKILL.md +0 -71
- package/template/.agents/skills/roadmap-strategy/SKILL.md +0 -94
- package/template/.agents/skills/security-review/SKILL.md +0 -63
- package/template/.agents/skills/seo-fundamentals/SKILL.md +0 -129
- package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
- package/template/.agents/skills/server-management/SKILL.md +0 -161
- package/template/.agents/skills/simplify/SKILL.md +0 -70
- package/template/.agents/skills/skill-development/SKILL.md +0 -86
- package/template/.agents/skills/spec/SKILL.md +0 -39
- package/template/.agents/skills/spec-driven-development/SKILL.md +0 -207
- package/template/.agents/skills/tailwind-patterns/SKILL.md +0 -269
- package/template/.agents/skills/type-design/SKILL.md +0 -84
- package/template/.agents/skills/ui-ux-pro-max/SKILL.md +0 -75
- package/template/.claude/skills/agent/SKILL.md +0 -165
- package/template/.claude/skills/api-and-interface-design/SKILL.md +0 -294
- package/template/.claude/skills/app-builder/SKILL.md +0 -75
- package/template/.claude/skills/app-builder/agent-coordination.md +0 -71
- package/template/.claude/skills/app-builder/feature-building.md +0 -53
- package/template/.claude/skills/app-builder/project-detection.md +0 -34
- package/template/.claude/skills/app-builder/scaffolding.md +0 -118
- package/template/.claude/skills/app-builder/tech-stack.md +0 -40
- package/template/.claude/skills/app-builder/templates/SKILL.md +0 -39
- package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
- package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
- package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
- package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
- package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
- package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
- package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
- package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
- package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
- package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
- package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
- package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
- package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
- package/template/.claude/skills/architecture/SKILL.md +0 -55
- package/template/.claude/skills/architecture/context-discovery.md +0 -43
- package/template/.claude/skills/architecture/examples.md +0 -94
- package/template/.claude/skills/architecture/pattern-selection.md +0 -68
- package/template/.claude/skills/architecture/patterns-reference.md +0 -50
- package/template/.claude/skills/architecture/trade-off-analysis.md +0 -77
- package/template/.claude/skills/bash-linux/SKILL.md +0 -199
- package/template/.claude/skills/behavioral-modes/SKILL.md +0 -242
- package/template/.claude/skills/brainstorm/SKILL.md +0 -168
- package/template/.claude/skills/changelog/SKILL.md +0 -109
- package/template/.claude/skills/codebase-design/DEEPENING.md +0 -24
- package/template/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +0 -28
- package/template/.claude/skills/codebase-design/SKILL.md +0 -58
- package/template/.claude/skills/commit/SKILL.md +0 -59
- package/template/.claude/skills/competitor-analysis/SKILL.md +0 -66
- package/template/.claude/skills/context-engineering/SKILL.md +0 -290
- package/template/.claude/skills/database-design/SKILL.md +0 -52
- package/template/.claude/skills/database-design/database-selection.md +0 -43
- package/template/.claude/skills/database-design/indexing.md +0 -39
- package/template/.claude/skills/database-design/migrations.md +0 -48
- package/template/.claude/skills/database-design/optimization.md +0 -36
- package/template/.claude/skills/database-design/orm-selection.md +0 -30
- package/template/.claude/skills/database-design/schema-design.md +0 -56
- package/template/.claude/skills/database-design/scripts/schema_validator.py +0 -172
- package/template/.claude/skills/deploy/SKILL.md +0 -63
- package/template/.claude/skills/documentation-and-adrs/SKILL.md +0 -278
- package/template/.claude/skills/domain-modeling/ADR-FORMAT.md +0 -47
- package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +0 -60
- package/template/.claude/skills/domain-modeling/SKILL.md +0 -74
- package/template/.claude/skills/followup/SKILL.md +0 -83
- package/template/.claude/skills/frontend-ui-engineering/SKILL.md +0 -326
- package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +0 -159
- package/template/.claude/skills/goal/SKILL.md +0 -148
- package/template/.claude/skills/handoff/SKILL.md +0 -46
- package/template/.claude/skills/help/SKILL.md +0 -253
- package/template/.claude/skills/i18n-localization/SKILL.md +0 -154
- package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +0 -241
- package/template/.claude/skills/insight/SKILL.md +0 -42
- package/template/.claude/skills/issue-triage/SKILL.md +0 -115
- package/template/.claude/skills/lint-and-validate/SKILL.md +0 -45
- package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +0 -184
- package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +0 -173
- package/template/.claude/skills/mcp-builder/SKILL.md +0 -176
- package/template/.claude/skills/merge/SKILL.md +0 -76
- package/template/.claude/skills/mobile-design/SKILL.md +0 -394
- package/template/.claude/skills/mobile-design/decision-trees.md +0 -516
- package/template/.claude/skills/mobile-design/mobile-backend.md +0 -491
- package/template/.claude/skills/mobile-design/mobile-color-system.md +0 -420
- package/template/.claude/skills/mobile-design/mobile-debugging.md +0 -122
- package/template/.claude/skills/mobile-design/mobile-design-thinking.md +0 -357
- package/template/.claude/skills/mobile-design/mobile-navigation.md +0 -458
- package/template/.claude/skills/mobile-design/mobile-performance.md +0 -767
- package/template/.claude/skills/mobile-design/mobile-testing.md +0 -356
- package/template/.claude/skills/mobile-design/mobile-typography.md +0 -433
- package/template/.claude/skills/mobile-design/platform-android.md +0 -666
- package/template/.claude/skills/mobile-design/platform-ios.md +0 -561
- package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +0 -670
- package/template/.claude/skills/mobile-design/touch-psychology.md +0 -537
- package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +0 -312
- package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +0 -240
- package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +0 -490
- package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +0 -264
- package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +0 -581
- package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +0 -432
- package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +0 -684
- package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +0 -150
- package/template/.claude/skills/nextjs-react-expert/SKILL.md +0 -286
- package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +0 -222
- package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +0 -252
- package/template/.claude/skills/nodejs-best-practices/SKILL.md +0 -333
- package/template/.claude/skills/package-json-generator/SKILL.md +0 -60
- package/template/.claude/skills/package-json-generator/scripts/generate.js +0 -120
- package/template/.claude/skills/package-json-generator/scripts/run.sh +0 -19
- package/template/.claude/skills/parallel-agents/SKILL.md +0 -144
- package/template/.claude/skills/performance-optimization/SKILL.md +0 -299
- package/template/.claude/skills/performance-optimization/performance-checklist.md +0 -113
- package/template/.claude/skills/powershell-windows/SKILL.md +0 -167
- package/template/.claude/skills/pr/SKILL.md +0 -93
- package/template/.claude/skills/prd/SKILL.md +0 -127
- package/template/.claude/skills/preview/SKILL.md +0 -42
- package/template/.claude/skills/python-patterns/SKILL.md +0 -441
- package/template/.claude/skills/research/SKILL.md +0 -143
- package/template/.claude/skills/review/SKILL.md +0 -71
- package/template/.claude/skills/roadmap-strategy/SKILL.md +0 -94
- package/template/.claude/skills/security-review/SKILL.md +0 -63
- package/template/.claude/skills/seo-fundamentals/SKILL.md +0 -129
- package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +0 -219
- package/template/.claude/skills/server-management/SKILL.md +0 -161
- package/template/.claude/skills/simplify/SKILL.md +0 -70
- package/template/.claude/skills/skill-development/SKILL.md +0 -86
- package/template/.claude/skills/spec/SKILL.md +0 -39
- package/template/.claude/skills/spec-driven-development/SKILL.md +0 -207
- package/template/.claude/skills/tailwind-patterns/SKILL.md +0 -269
- package/template/.claude/skills/type-design/SKILL.md +0 -84
- package/template/.claude/skills/ui-ux-pro-max/SKILL.md +0 -75
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: roadmap-strategy
|
|
3
|
-
description: "[Devflow] Create or refresh product roadmap direction using markdown-first discovery and roadmap artifacts. Use when strategic planning should stay outside the mainline but still follow DevFlow 2.0 contracts."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Roadmap Strategy
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
This skill is the shared behavior layer behind `Roadmap`.
|
|
11
|
-
|
|
12
|
-
It replaces the older JSON-centered roadmap flow with a markdown-first strategy workflow that still preserves structured validation.
|
|
13
|
-
|
|
14
|
-
## Related Assets
|
|
15
|
-
|
|
16
|
-
This skill should reuse and align with:
|
|
17
|
-
|
|
18
|
-
- `.agent/resources/schemas/roadmap_discovery.template.md`
|
|
19
|
-
- `.agent/resources/schemas/roadmap.template.md`
|
|
20
|
-
- `ROADMAP.md`
|
|
21
|
-
|
|
22
|
-
## When to Use
|
|
23
|
-
|
|
24
|
-
- when product direction, priority, or sequencing needs a dedicated roadmap pass
|
|
25
|
-
- when competitor, PRD, research, or delivery insight should be consolidated into strategy
|
|
26
|
-
- when roadmap work should stay outside the numbered mainline but still hand off cleanly into `PRD`, `10-define`, or `20-spec`
|
|
27
|
-
|
|
28
|
-
## Canonical Artifacts
|
|
29
|
-
|
|
30
|
-
Use markdown-first artifacts:
|
|
31
|
-
|
|
32
|
-
- `devflow/roadmap/roadmap-discovery.md`
|
|
33
|
-
- `ROADMAP.md`
|
|
34
|
-
|
|
35
|
-
- research notes
|
|
36
|
-
- PRD outputs
|
|
37
|
-
- release or insight notes
|
|
38
|
-
|
|
39
|
-
## Process
|
|
40
|
-
|
|
41
|
-
### 1. Load Current Strategy Context
|
|
42
|
-
|
|
43
|
-
Read the minimum useful context:
|
|
44
|
-
|
|
45
|
-
- existing `ROADMAP.md`
|
|
46
|
-
- `devflow/roadmap/roadmap-discovery.md`
|
|
47
|
-
- current research, competitor notes, PRD, or insights when relevant
|
|
48
|
-
|
|
49
|
-
### 2. Refresh Discovery
|
|
50
|
-
|
|
51
|
-
Capture:
|
|
52
|
-
|
|
53
|
-
- project purpose
|
|
54
|
-
- target users
|
|
55
|
-
- current state
|
|
56
|
-
- constraints
|
|
57
|
-
- market context
|
|
58
|
-
- known gaps
|
|
59
|
-
|
|
60
|
-
Save discovery notes in `devflow/roadmap/roadmap-discovery.md` using the discovery template.
|
|
61
|
-
|
|
62
|
-
### 3. Prioritize The Roadmap
|
|
63
|
-
|
|
64
|
-
Group roadmap work into useful strategic buckets such as:
|
|
65
|
-
|
|
66
|
-
- near-term improvements
|
|
67
|
-
- medium-term bets
|
|
68
|
-
- long-term bets
|
|
69
|
-
- technical debt and platform readiness
|
|
70
|
-
|
|
71
|
-
Keep priorities traceable to evidence from stage work, user feedback, competitor findings, or implementation insight.
|
|
72
|
-
|
|
73
|
-
### 4. Save The Canonical Roadmap
|
|
74
|
-
|
|
75
|
-
Update `ROADMAP.md` using `.agent/resources/schemas/roadmap.template.md`.
|
|
76
|
-
|
|
77
|
-
Replace placeholder content fully and keep headings and tables intact so validation can inspect the roadmap structure.
|
|
78
|
-
|
|
79
|
-
### 5. Route Back
|
|
80
|
-
|
|
81
|
-
- `PRD` when product framing needs to deepen
|
|
82
|
-
- `10-define` when roadmap decisions should become bounded work
|
|
83
|
-
- `20-spec` when one item is ready for delivery contract work
|
|
84
|
-
- `Brainstorm` when strategy is still too fuzzy to lock
|
|
85
|
-
|
|
86
|
-
## Output
|
|
87
|
-
|
|
88
|
-
Return:
|
|
89
|
-
|
|
90
|
-
- what changed in discovery
|
|
91
|
-
- what changed in the roadmap
|
|
92
|
-
- priority rationale
|
|
93
|
-
- validation result
|
|
94
|
-
- the recommended next command
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: security-review
|
|
3
|
-
description: "[Devflow] High-severity security code review and vulnerability audit for folders, projects, files, or diffs."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Security Review, Hardening & Vulnerability Audit
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
This is the comprehensive security master skill for Nexus-DevFlow. It combines static vulnerability scanning, threat modeling, OWASP Top 10 defenses, and code hardening. Treat every external input as hostile, every secret as sacred, and every authorization check as mandatory.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 1. The Three-Tier Security Boundary
|
|
15
|
-
|
|
16
|
-
### Always Do (No Exceptions)
|
|
17
|
-
- **Validate & sanitize all inputs** at the boundary (Zod, Yup, schema validation).
|
|
18
|
-
- **Parameterize all queries** — never concatenate user input into SQL/NoSQL queries.
|
|
19
|
-
- **Encode outputs** to prevent XSS (rely on framework auto-escaping).
|
|
20
|
-
- **Hash credentials** using bcrypt, Argon2, or scrypt.
|
|
21
|
-
- **Enforce secure cookies**: `httpOnly`, `secure`, `sameSite=lax/strict`.
|
|
22
|
-
|
|
23
|
-
### Never Do
|
|
24
|
-
- **Never commit secrets**, API keys, tokens, or credentials to git.
|
|
25
|
-
- **Never trust client-side checks** as a security barrier.
|
|
26
|
-
- **Never use `eval()`, `exec()`, or raw `innerHTML`** with untrusted user data.
|
|
27
|
-
- **Never expose internal stack traces** or detailed database errors to users.
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## 2. OWASP & Critical Vulnerability Vectors
|
|
32
|
-
|
|
33
|
-
| Category | Primary Risk | Mandatory Defense |
|
|
34
|
-
| :--- | :--- | :--- |
|
|
35
|
-
| **A01: Broken Access Control** | IDOR, missing role checks | Enforce server-side authorization on every endpoint/data fetch |
|
|
36
|
-
| **A02: Cryptographic Failures** | Plaintext tokens/passwords, weak cipher | Use TLS 1.3, salted hashing, secret managers / `.env` |
|
|
37
|
-
| **A03: Injection** | SQL, NoSQL, OS Command, Template | Parameterized queries, avoid shell spawning with user input |
|
|
38
|
-
| **A04: Insecure Design** | Missing rate limits, business logic flaw | Defense-in-depth, token bucket throttling, safe defaults |
|
|
39
|
-
| **A05: Security Misconfig** | Permissive CORS (`*`), exposed debug endpoints | Restrict CORS origins, disable debug/admin paths in production |
|
|
40
|
-
| **A07: Identification & Auth** | Session fixation, brute-force | Account lockouts, secure session rotation, MFA support |
|
|
41
|
-
| **A08: Software & Data Integrity**| Untrusted CI/CD packages, deserialization | Run `npm audit`, pin dependency hashes, validate payloads |
|
|
42
|
-
| **A09: Logging & Monitoring** | Missing audit logs or logging secrets | Structured logging with PII masking, alert on repeated auth failure |
|
|
43
|
-
| **A10: SSRF** | Fetching internal URLs from user input | Whitelist allowable destination protocols and domains |
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 3. Security Review Process
|
|
48
|
-
|
|
49
|
-
1. **Target & Scope**: Inspect targeted files, PR diffs, or entire project directories.
|
|
50
|
-
2. **Trace Trust Boundaries**: Follow untrusted data from entry (HTTP handlers, CLI arguments, file uploads) to sinks (DB, shell, HTML).
|
|
51
|
-
3. **Scan for Secrets & Configs**: Detect hardcoded passwords, private keys, and environment variable leaks.
|
|
52
|
-
4. **Generate Report**: Save formal security audits under:
|
|
53
|
-
```text
|
|
54
|
-
devflow/runs/{ID}-{slug}/security-review.md
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Relationship To DevFlow 2.0
|
|
60
|
-
|
|
61
|
-
- **Classification**: Companion command & Safety gate
|
|
62
|
-
- **Mainline integration**: Run during `40-execute` or `50-verify` before `70-release`.
|
|
63
|
-
- **Handoff**: P0/P1 security findings block release and return to `40-execute` for immediate remediation.
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: seo-fundamentals
|
|
3
|
-
description: "[Devflow] SEO fundamentals, E-E-A-T, Core Web Vitals, and Google algorithm principles."
|
|
4
|
-
allowed-tools: Read, Glob, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# SEO Fundamentals
|
|
8
|
-
|
|
9
|
-
> Principles for search engine visibility.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 1. E-E-A-T Framework
|
|
14
|
-
|
|
15
|
-
| Principle | Signals |
|
|
16
|
-
|-----------|---------|
|
|
17
|
-
| **Experience** | First-hand knowledge, real examples |
|
|
18
|
-
| **Expertise** | Credentials, depth of knowledge |
|
|
19
|
-
| **Authoritativeness** | Backlinks, mentions, industry recognition |
|
|
20
|
-
| **Trustworthiness** | HTTPS, transparency, accurate info |
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 2. Core Web Vitals
|
|
25
|
-
|
|
26
|
-
| Metric | Target | Measures |
|
|
27
|
-
|--------|--------|----------|
|
|
28
|
-
| **LCP** | < 2.5s | Loading performance |
|
|
29
|
-
| **INP** | < 200ms | Interactivity |
|
|
30
|
-
| **CLS** | < 0.1 | Visual stability |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## 3. Technical SEO Principles
|
|
35
|
-
|
|
36
|
-
### Site Structure
|
|
37
|
-
|
|
38
|
-
| Element | Purpose |
|
|
39
|
-
|---------|---------|
|
|
40
|
-
| XML sitemap | Help crawling |
|
|
41
|
-
| robots.txt | Control access |
|
|
42
|
-
| Canonical tags | Prevent duplicates |
|
|
43
|
-
| HTTPS | Security signal |
|
|
44
|
-
|
|
45
|
-
### Performance
|
|
46
|
-
|
|
47
|
-
| Factor | Impact |
|
|
48
|
-
|--------|--------|
|
|
49
|
-
| Page speed | Core Web Vital |
|
|
50
|
-
| Mobile-friendly | Ranking factor |
|
|
51
|
-
| Clean URLs | Crawlability |
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 4. Content SEO Principles
|
|
56
|
-
|
|
57
|
-
### Page Elements
|
|
58
|
-
|
|
59
|
-
| Element | Best Practice |
|
|
60
|
-
|---------|---------------|
|
|
61
|
-
| Title tag | 50-60 chars, keyword front |
|
|
62
|
-
| Meta description | 150-160 chars, compelling |
|
|
63
|
-
| H1 | One per page, main keyword |
|
|
64
|
-
| H2-H6 | Logical hierarchy |
|
|
65
|
-
| Alt text | Descriptive, not stuffed |
|
|
66
|
-
|
|
67
|
-
### Content Quality
|
|
68
|
-
|
|
69
|
-
| Factor | Importance |
|
|
70
|
-
|--------|------------|
|
|
71
|
-
| Depth | Comprehensive coverage |
|
|
72
|
-
| Freshness | Regular updates |
|
|
73
|
-
| Uniqueness | Original value |
|
|
74
|
-
| Readability | Clear writing |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## 5. Schema Markup Types
|
|
79
|
-
|
|
80
|
-
| Type | Use |
|
|
81
|
-
|------|-----|
|
|
82
|
-
| Article | Blog posts, news |
|
|
83
|
-
| Organization | Company info |
|
|
84
|
-
| Person | Author profiles |
|
|
85
|
-
| FAQPage | Q&A content |
|
|
86
|
-
| Product | E-commerce |
|
|
87
|
-
| Review | Ratings |
|
|
88
|
-
| BreadcrumbList | Navigation |
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 6. AI Content Guidelines
|
|
93
|
-
|
|
94
|
-
### What Google Looks For
|
|
95
|
-
|
|
96
|
-
| ✅ Do | ❌ Don't |
|
|
97
|
-
|-------|----------|
|
|
98
|
-
| AI draft + human edit | Publish raw AI content |
|
|
99
|
-
| Add original insights | Copy without value |
|
|
100
|
-
| Expert review | Skip fact-checking |
|
|
101
|
-
| Follow E-E-A-T | Keyword stuffing |
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
## 7. Ranking Factors (Prioritized)
|
|
106
|
-
|
|
107
|
-
| Priority | Factor |
|
|
108
|
-
|----------|--------|
|
|
109
|
-
| 1 | Quality, relevant content |
|
|
110
|
-
| 2 | Backlinks from authority sites |
|
|
111
|
-
| 3 | Page experience (Core Web Vitals) |
|
|
112
|
-
| 4 | Mobile optimization |
|
|
113
|
-
| 5 | Technical SEO fundamentals |
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## 8. Measurement
|
|
118
|
-
|
|
119
|
-
| Metric | Tool |
|
|
120
|
-
|--------|------|
|
|
121
|
-
| Rankings | Search Console, Ahrefs |
|
|
122
|
-
| Traffic | Analytics |
|
|
123
|
-
| Core Web Vitals | PageSpeed Insights |
|
|
124
|
-
| Indexing | Search Console |
|
|
125
|
-
| Backlinks | Ahrefs, Semrush |
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
> **Remember:** SEO is a long-term game. Quality content + technical excellence + patience = results.
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
SEO Checker - Search Engine Optimization Audit
|
|
4
|
-
Checks HTML/JSX/TSX pages for SEO best practices.
|
|
5
|
-
|
|
6
|
-
PURPOSE:
|
|
7
|
-
- Verify meta tags, titles, descriptions
|
|
8
|
-
- Check Open Graph tags for social sharing
|
|
9
|
-
- Validate heading hierarchy
|
|
10
|
-
- Check image accessibility (alt attributes)
|
|
11
|
-
|
|
12
|
-
WHAT IT CHECKS:
|
|
13
|
-
- HTML files (actual web pages)
|
|
14
|
-
- JSX/TSX files (React page components)
|
|
15
|
-
- Only files that are likely PUBLIC pages
|
|
16
|
-
|
|
17
|
-
Usage:
|
|
18
|
-
python seo_checker.py <project_path>
|
|
19
|
-
"""
|
|
20
|
-
import sys
|
|
21
|
-
import json
|
|
22
|
-
import re
|
|
23
|
-
from pathlib import Path
|
|
24
|
-
from datetime import datetime
|
|
25
|
-
|
|
26
|
-
# Fix Windows console encoding
|
|
27
|
-
try:
|
|
28
|
-
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
29
|
-
except:
|
|
30
|
-
pass
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# Directories to skip
|
|
34
|
-
SKIP_DIRS = {
|
|
35
|
-
'node_modules', '.next', 'dist', 'build', '.git', '.github',
|
|
36
|
-
'__pycache__', '.vscode', '.idea', 'coverage', 'test', 'tests',
|
|
37
|
-
'__tests__', 'spec', 'docs', 'documentation', 'examples'
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
# Files to skip (not pages)
|
|
41
|
-
SKIP_PATTERNS = [
|
|
42
|
-
'config', 'setup', 'util', 'helper', 'hook', 'context', 'store',
|
|
43
|
-
'service', 'api', 'lib', 'constant', 'type', 'interface', 'mock',
|
|
44
|
-
'.test.', '.spec.', '_test.', '_spec.'
|
|
45
|
-
]
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def is_page_file(file_path: Path) -> bool:
|
|
49
|
-
"""Check if this file is likely a public-facing page."""
|
|
50
|
-
name = file_path.name.lower()
|
|
51
|
-
stem = file_path.stem.lower()
|
|
52
|
-
|
|
53
|
-
# Skip utility/config files
|
|
54
|
-
if any(skip in name for skip in SKIP_PATTERNS):
|
|
55
|
-
return False
|
|
56
|
-
|
|
57
|
-
# Check path - pages in specific directories are likely pages
|
|
58
|
-
parts = [p.lower() for p in file_path.parts]
|
|
59
|
-
page_dirs = ['pages', 'app', 'routes', 'views', 'screens']
|
|
60
|
-
|
|
61
|
-
if any(d in parts for d in page_dirs):
|
|
62
|
-
return True
|
|
63
|
-
|
|
64
|
-
# Filename indicators for pages
|
|
65
|
-
page_names = ['page', 'index', 'home', 'about', 'contact', 'blog',
|
|
66
|
-
'post', 'article', 'product', 'landing', 'layout']
|
|
67
|
-
|
|
68
|
-
if any(p in stem for p in page_names):
|
|
69
|
-
return True
|
|
70
|
-
|
|
71
|
-
# HTML files are usually pages
|
|
72
|
-
if file_path.suffix.lower() in ['.html', '.htm']:
|
|
73
|
-
return True
|
|
74
|
-
|
|
75
|
-
return False
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
def find_pages(project_path: Path) -> list:
|
|
79
|
-
"""Find page files to check."""
|
|
80
|
-
patterns = ['**/*.html', '**/*.htm', '**/*.jsx', '**/*.tsx']
|
|
81
|
-
|
|
82
|
-
files = []
|
|
83
|
-
for pattern in patterns:
|
|
84
|
-
for f in project_path.glob(pattern):
|
|
85
|
-
# Skip excluded directories
|
|
86
|
-
if any(skip in f.parts for skip in SKIP_DIRS):
|
|
87
|
-
continue
|
|
88
|
-
|
|
89
|
-
# Check if it's likely a page
|
|
90
|
-
if is_page_file(f):
|
|
91
|
-
files.append(f)
|
|
92
|
-
|
|
93
|
-
return files[:50] # Limit to 50 files
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
def check_page(file_path: Path) -> dict:
|
|
97
|
-
"""Check a single page for SEO issues."""
|
|
98
|
-
issues = []
|
|
99
|
-
|
|
100
|
-
try:
|
|
101
|
-
content = file_path.read_text(encoding='utf-8', errors='ignore')
|
|
102
|
-
except Exception as e:
|
|
103
|
-
return {"file": str(file_path.name), "issues": [f"Error: {e}"]}
|
|
104
|
-
|
|
105
|
-
# Detect if this is a layout/template file (has Head component)
|
|
106
|
-
is_layout = 'Head>' in content or '<head' in content.lower()
|
|
107
|
-
|
|
108
|
-
# 1. Title tag
|
|
109
|
-
has_title = '<title' in content.lower() or 'title=' in content or 'Head>' in content
|
|
110
|
-
if not has_title and is_layout:
|
|
111
|
-
issues.append("Missing <title> tag")
|
|
112
|
-
|
|
113
|
-
# 2. Meta description
|
|
114
|
-
has_description = 'name="description"' in content.lower() or 'name=\'description\'' in content.lower()
|
|
115
|
-
if not has_description and is_layout:
|
|
116
|
-
issues.append("Missing meta description")
|
|
117
|
-
|
|
118
|
-
# 3. Open Graph tags
|
|
119
|
-
has_og = 'og:' in content or 'property="og:' in content.lower()
|
|
120
|
-
if not has_og and is_layout:
|
|
121
|
-
issues.append("Missing Open Graph tags")
|
|
122
|
-
|
|
123
|
-
# 4. Heading hierarchy - multiple H1s
|
|
124
|
-
h1_matches = re.findall(r'<h1[^>]*>', content, re.I)
|
|
125
|
-
if len(h1_matches) > 1:
|
|
126
|
-
issues.append(f"Multiple H1 tags ({len(h1_matches)})")
|
|
127
|
-
|
|
128
|
-
# 5. Images without alt
|
|
129
|
-
img_pattern = r'<img[^>]+>'
|
|
130
|
-
imgs = re.findall(img_pattern, content, re.I)
|
|
131
|
-
for img in imgs:
|
|
132
|
-
if 'alt=' not in img.lower():
|
|
133
|
-
issues.append("Image missing alt attribute")
|
|
134
|
-
break
|
|
135
|
-
if 'alt=""' in img or "alt=''" in img:
|
|
136
|
-
issues.append("Image has empty alt attribute")
|
|
137
|
-
break
|
|
138
|
-
|
|
139
|
-
# 6. Check for canonical link (nice to have)
|
|
140
|
-
# has_canonical = 'rel="canonical"' in content.lower()
|
|
141
|
-
|
|
142
|
-
return {
|
|
143
|
-
"file": str(file_path.name),
|
|
144
|
-
"issues": issues
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
def main():
|
|
149
|
-
project_path = Path(sys.argv[1] if len(sys.argv) > 1 else ".").resolve()
|
|
150
|
-
|
|
151
|
-
print(f"\n{'='*60}")
|
|
152
|
-
print(f" SEO CHECKER - Search Engine Optimization Audit")
|
|
153
|
-
print(f"{'='*60}")
|
|
154
|
-
print(f"Project: {project_path}")
|
|
155
|
-
print(f"Time: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
|
|
156
|
-
print("-"*60)
|
|
157
|
-
|
|
158
|
-
# Find pages
|
|
159
|
-
pages = find_pages(project_path)
|
|
160
|
-
|
|
161
|
-
if not pages:
|
|
162
|
-
print("\n[!] No page files found.")
|
|
163
|
-
print(" Looking for: HTML, JSX, TSX in pages/app/routes directories")
|
|
164
|
-
output = {"script": "seo_checker", "files_checked": 0, "passed": True}
|
|
165
|
-
print("\n" + json.dumps(output, indent=2))
|
|
166
|
-
sys.exit(0)
|
|
167
|
-
|
|
168
|
-
print(f"Found {len(pages)} page files to analyze\n")
|
|
169
|
-
|
|
170
|
-
# Check each page
|
|
171
|
-
all_issues = []
|
|
172
|
-
for f in pages:
|
|
173
|
-
result = check_page(f)
|
|
174
|
-
if result["issues"]:
|
|
175
|
-
all_issues.append(result)
|
|
176
|
-
|
|
177
|
-
# Summary
|
|
178
|
-
print("=" * 60)
|
|
179
|
-
print("SEO ANALYSIS RESULTS")
|
|
180
|
-
print("=" * 60)
|
|
181
|
-
|
|
182
|
-
if all_issues:
|
|
183
|
-
# Group by issue type
|
|
184
|
-
issue_counts = {}
|
|
185
|
-
for item in all_issues:
|
|
186
|
-
for issue in item["issues"]:
|
|
187
|
-
issue_counts[issue] = issue_counts.get(issue, 0) + 1
|
|
188
|
-
|
|
189
|
-
print("\nIssue Summary:")
|
|
190
|
-
for issue, count in sorted(issue_counts.items(), key=lambda x: -x[1]):
|
|
191
|
-
print(f" [{count}] {issue}")
|
|
192
|
-
|
|
193
|
-
print(f"\nAffected files ({len(all_issues)}):")
|
|
194
|
-
for item in all_issues[:5]:
|
|
195
|
-
print(f" - {item['file']}")
|
|
196
|
-
if len(all_issues) > 5:
|
|
197
|
-
print(f" ... and {len(all_issues) - 5} more")
|
|
198
|
-
else:
|
|
199
|
-
print("\n[OK] No SEO issues found!")
|
|
200
|
-
|
|
201
|
-
total_issues = sum(len(item["issues"]) for item in all_issues)
|
|
202
|
-
passed = total_issues == 0
|
|
203
|
-
|
|
204
|
-
output = {
|
|
205
|
-
"script": "seo_checker",
|
|
206
|
-
"project": str(project_path),
|
|
207
|
-
"files_checked": len(pages),
|
|
208
|
-
"files_with_issues": len(all_issues),
|
|
209
|
-
"issues_found": total_issues,
|
|
210
|
-
"passed": passed
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
print("\n" + json.dumps(output, indent=2))
|
|
214
|
-
|
|
215
|
-
sys.exit(0 if passed else 1)
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
if __name__ == "__main__":
|
|
219
|
-
main()
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: server-management
|
|
3
|
-
description: "[Devflow] Server management principles and decision-making. Process management, monitoring strategy, and scaling decisions. Teaches thinking, not commands."
|
|
4
|
-
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Server Management
|
|
8
|
-
|
|
9
|
-
> Server management principles for production operations.
|
|
10
|
-
> **Learn to THINK, not memorize commands.**
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 1. Process Management Principles
|
|
15
|
-
|
|
16
|
-
### Tool Selection
|
|
17
|
-
|
|
18
|
-
| Scenario | Tool |
|
|
19
|
-
|----------|------|
|
|
20
|
-
| **Node.js app** | PM2 (clustering, reload) |
|
|
21
|
-
| **Any app** | systemd (Linux native) |
|
|
22
|
-
| **Containers** | Docker/Podman |
|
|
23
|
-
| **Orchestration** | Kubernetes, Docker Swarm |
|
|
24
|
-
|
|
25
|
-
### Process Management Goals
|
|
26
|
-
|
|
27
|
-
| Goal | What It Means |
|
|
28
|
-
|------|---------------|
|
|
29
|
-
| **Restart on crash** | Auto-recovery |
|
|
30
|
-
| **Zero-downtime reload** | No service interruption |
|
|
31
|
-
| **Clustering** | Use all CPU cores |
|
|
32
|
-
| **Persistence** | Survive server reboot |
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## 2. Monitoring Principles
|
|
37
|
-
|
|
38
|
-
### What to Monitor
|
|
39
|
-
|
|
40
|
-
| Category | Key Metrics |
|
|
41
|
-
|----------|-------------|
|
|
42
|
-
| **Availability** | Uptime, health checks |
|
|
43
|
-
| **Performance** | Response time, throughput |
|
|
44
|
-
| **Errors** | Error rate, types |
|
|
45
|
-
| **Resources** | CPU, memory, disk |
|
|
46
|
-
|
|
47
|
-
### Alert Severity Strategy
|
|
48
|
-
|
|
49
|
-
| Level | Response |
|
|
50
|
-
|-------|----------|
|
|
51
|
-
| **Critical** | Immediate action |
|
|
52
|
-
| **Warning** | Investigate soon |
|
|
53
|
-
| **Info** | Review daily |
|
|
54
|
-
|
|
55
|
-
### Monitoring Tool Selection
|
|
56
|
-
|
|
57
|
-
| Need | Options |
|
|
58
|
-
|------|---------|
|
|
59
|
-
| Simple/Free | PM2 metrics, htop |
|
|
60
|
-
| Full observability | Grafana, Datadog |
|
|
61
|
-
| Error tracking | Sentry |
|
|
62
|
-
| Uptime | UptimeRobot, Pingdom |
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## 3. Log Management Principles
|
|
67
|
-
|
|
68
|
-
### Log Strategy
|
|
69
|
-
|
|
70
|
-
| Log Type | Purpose |
|
|
71
|
-
|----------|---------|
|
|
72
|
-
| **Application logs** | Debug, audit |
|
|
73
|
-
| **Access logs** | Traffic analysis |
|
|
74
|
-
| **Error logs** | Issue detection |
|
|
75
|
-
|
|
76
|
-
### Log Principles
|
|
77
|
-
|
|
78
|
-
1. **Rotate logs** to prevent disk fill
|
|
79
|
-
2. **Structured logging** (JSON) for parsing
|
|
80
|
-
3. **Appropriate levels** (error/warn/info/debug)
|
|
81
|
-
4. **No sensitive data** in logs
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## 4. Scaling Decisions
|
|
86
|
-
|
|
87
|
-
### When to Scale
|
|
88
|
-
|
|
89
|
-
| Symptom | Solution |
|
|
90
|
-
|---------|----------|
|
|
91
|
-
| High CPU | Add instances (horizontal) |
|
|
92
|
-
| High memory | Increase RAM or fix leak |
|
|
93
|
-
| Slow response | Profile first, then scale |
|
|
94
|
-
| Traffic spikes | Auto-scaling |
|
|
95
|
-
|
|
96
|
-
### Scaling Strategy
|
|
97
|
-
|
|
98
|
-
| Type | When to Use |
|
|
99
|
-
|------|-------------|
|
|
100
|
-
| **Vertical** | Quick fix, single instance |
|
|
101
|
-
| **Horizontal** | Sustainable, distributed |
|
|
102
|
-
| **Auto** | Variable traffic |
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## 5. Health Check Principles
|
|
107
|
-
|
|
108
|
-
### What Constitutes Healthy
|
|
109
|
-
|
|
110
|
-
| Check | Meaning |
|
|
111
|
-
|-------|---------|
|
|
112
|
-
| **HTTP 200** | Service responding |
|
|
113
|
-
| **Database connected** | Data accessible |
|
|
114
|
-
| **Dependencies OK** | External services reachable |
|
|
115
|
-
| **Resources OK** | CPU/memory not exhausted |
|
|
116
|
-
|
|
117
|
-
### Health Check Implementation
|
|
118
|
-
|
|
119
|
-
- Simple: Just return 200
|
|
120
|
-
- Deep: Check all dependencies
|
|
121
|
-
- Choose based on load balancer needs
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## 6. Security Principles
|
|
126
|
-
|
|
127
|
-
| Area | Principle |
|
|
128
|
-
|------|-----------|
|
|
129
|
-
| **Access** | SSH keys only, no passwords |
|
|
130
|
-
| **Firewall** | Only needed ports open |
|
|
131
|
-
| **Updates** | Regular security patches |
|
|
132
|
-
| **Secrets** | Environment vars, not files |
|
|
133
|
-
| **Audit** | Log access and changes |
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## 7. Troubleshooting Priority
|
|
138
|
-
|
|
139
|
-
When something's wrong:
|
|
140
|
-
|
|
141
|
-
1. **Check if running** (process status)
|
|
142
|
-
2. **Check logs** (error messages)
|
|
143
|
-
3. **Check resources** (disk, memory, CPU)
|
|
144
|
-
4. **Check network** (ports, DNS)
|
|
145
|
-
5. **Check dependencies** (database, APIs)
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 8. Anti-Patterns
|
|
150
|
-
|
|
151
|
-
| ❌ Don't | ✅ Do |
|
|
152
|
-
|----------|-------|
|
|
153
|
-
| Run as root | Use non-root user |
|
|
154
|
-
| Ignore logs | Set up log rotation |
|
|
155
|
-
| Skip monitoring | Monitor from day one |
|
|
156
|
-
| Manual restarts | Auto-restart config |
|
|
157
|
-
| No backups | Regular backup schedule |
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
> **Remember:** A well-managed server is boring. That's the goal.
|