Marketplace architecture-navigator
Understand and navigate the DevPrep AI 7-folder architecture. Use this skill when asked about code organization, where to place new features, what modules exist, or when starting development tasks that need architecture context. Auto-triggers on keywords like "where should", "add module", "architecture", "structure", "organize", "place code", "what modules".
git clone https://github.com/aiskillstore/marketplace
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ariegoldkin/architecture-navigator" ~/.claude/skills/aiskillstore-marketplace-architecture-navigator && rm -rf "$T"
skills/ariegoldkin/architecture-navigator/SKILL.mdArchitecture Navigator
Overview
Provide instant architecture intelligence for the DevPrep AI codebase. Generate architecture maps, answer placement questions ("where should X go?"), and validate code organization against the 7-folder structure. This skill eliminates the need to manually read architecture documentation at conversation start.
Core Capabilities
1. Architecture Scanning
When starting a development conversation or when explicitly requested, scan the codebase to generate a real-time architecture map.
How to scan:
# Run the architecture scanner from project root bash ./.claude/skills/architecture-navigator/scripts/scan_architecture.sh
The scanner will output:
- 7-Folder Structure: modules/, shared/, lib/, store/, types/, styles/, app/
- Module List: All feature modules with file counts
- Key Locations: API layer, state management, UI components
- Quick Stats: Total files, module count, component count
When to scan:
- At the start of development conversations about architecture
- When asked "what modules exist?" or "what's the structure?"
- Before suggesting where new code should go
- When validating architecture compliance
Output format: Compact markdown summary (~50-100 lines) showing the current architecture state.
2. Interactive Placement Queries
Answer "where should X go?" questions using the 7-folder placement rules.
Decision tree:
- Is it a route/page? →
(but keep minimal, import from modules/)app/ - Is it feature-specific? →
modules/{feature}/ - Is it reusable UI/logic? →
shared/ - Is it external integration? →
lib/ - Is it global state? →
store/ - Is it a shared type? →
types/ - Is it pure styling? →
styles/
Example queries and responses:
| User Query | Response |
|---|---|
| "Where should social login go?" | - Feature-specific authentication logic |
| "Where should I add payment processing?" | - New feature module for payment domain logic |
| "Where do reusable buttons go?" | - Reusable UI component |
| "Where's the Claude AI integration?" | - External service integration |
| "Where should shopping cart state go?" | - Global state management |
| "Where do API types go?" | - Shared TypeScript definitions |
For detailed rules, reference
references/architecture-rules.md which includes:
- Complete placement rules for all 7 folders
- Import direction rules (what can import what)
- Forbidden patterns (circular dependencies, wrong imports)
- Decision tree for complex placement questions
- Common examples and edge cases
3. Module Discovery
List existing modules and explain their purpose when asked.
How to discover modules:
# Quick module list ls -1 frontend/src/modules/ # With file counts find frontend/src/modules/ -mindepth 1 -maxdepth 1 -type d -exec sh -c 'echo -n "{}:" && find "{}" -name "*.ts*" | wc -l' \;
Common questions:
- "What modules exist?" → Run module discovery
- "Where does authentication live?" → Check modules/ for auth-related folders
- "What features are implemented?" → Scan modules/ directory
4. Architecture Validation
Validate that code follows the 7-folder structure rules.
What to check:
- ✅ Routes in
are minimal (just imports)app/ - ✅ Business logic is in
, notmodules/app/ - ✅ Shared components are in
, not duplicatedshared/ - ✅ External integrations are in
lib/ - ✅ Global state is in
store/ - ✅ Imports follow allowed directions (see architecture-rules.md)
Validation commands:
# Check for business logic in app/ (should be minimal) grep -r "useState\|useEffect\|async function" frontend/src/app/ # Check for cross-module imports (forbidden) grep -r "from.*modules/" frontend/src/modules/ # Check for modules importing from shared (allowed) grep -r "from.*shared/" frontend/src/modules/
Workflow: Using This Skill
Scenario 1: Conversation Start
When a development conversation begins, proactively scan the architecture:
- Run
to generate current architecture mapscripts/scan_architecture.sh - Present the map concisely (don't overwhelm with details)
- Use this context for subsequent placement questions
Scenario 2: Placement Questions
When asked "where should X go?":
- Identify the nature of the code (feature, reusable, integration, etc.)
- Apply the decision tree from
references/architecture-rules.md - Provide specific path recommendation
- Explain WHY (which rule applies)
Example:
User: "Where should I add OAuth authentication?" Response: OAuth authentication should go in `modules/auth/oauth/`: - It's feature-specific (authentication domain) - It belongs in modules/ (not reusable across other features) - Structure: modules/auth/oauth/GoogleAuth.tsx, OAuthProvider.tsx, etc. The OAuth client setup (SDK wrapper) should go in `lib/oauth/client.ts` (external integration).
Scenario 3: New Feature Module
When creating a new feature module:
- Confirm it's truly a feature (domain-specific, not cross-cutting)
- Create structure:
modules/{feature-name}/ - Recommend typical structure:
modules/{feature}/ ├── components/ - Feature-specific UI ├── hooks/ - Feature-specific hooks ├── utils/ - Feature-specific utilities └── types.ts - Feature-specific types (if not shared) - Remind about import rules (can import from shared/, lib/, store/, types/)
Auto-Trigger Keywords
This skill automatically activates when these phrases are detected:
- "where should"
- "add module"
- "architecture"
- "structure"
- "organize"
- "place code"
- "what modules"
- "where does [X] live"
- "where's the API"
- "folder structure"
Manual invocation: Use
/architecture or explicitly request "scan the architecture".
Resources
scripts/scan_architecture.sh
Fast bash script that scans the 7-folder structure and generates a markdown architecture map. Outputs module list, key locations, and quick stats.
Usage:
bash scripts/scan_architecture.sh [project-root]
Output: Compact markdown summary (~50-100 lines) suitable for loading into context.
references/architecture-rules.md
Comprehensive placement rules for the 7-folder architecture. Reference this document when:
- Answering complex placement questions
- Validating architecture compliance
- Explaining import direction rules
- Handling edge cases or ambiguous scenarios
Key sections:
- 7-Folder structure overview
- Detailed placement rules for each folder
- Import direction rules (what can import what)
- Forbidden patterns
- Decision tree for placement
- Common examples table
Best Practices
- Start with scanning: Generate architecture map at conversation start for context
- Be specific: Always provide exact paths, not just folder names
- Explain reasoning: Don't just say "put it in modules/", explain WHY
- Reference rules: Point to
for detailed justificationarchitecture-rules.md - Validate imports: Check that suggested placements respect import direction rules
- Detect drift: Flag when actual code structure deviates from documented architecture
- Keep it concise: Architecture maps should be scannable (~50-100 lines)
Example Usage
User: "I want to add a notification system that shows toast messages across the app."
Response:
Let me scan the current architecture first:
bash ./.claude/skills/architecture-navigator/scripts/scan_architecture.sh
[Architecture map output]
For a global notification system with toast messages:
- Toast UI Component →
(reusable UI)shared/components/Toast.tsx - Notification State →
(global state for managing active toasts)store/uiStore.ts - Toast Hook →
(convenient API:shared/hooks/useToast.ts
)useToast().show()
Reasoning:
- Toast component is reusable across all features → shared/
- Notification state is global (not feature-specific) → store/
- Hook provides ergonomic API and is reusable → shared/
Import flow:
- Features call
fromuseToast()shared/hooks/ - Hook accesses
store/uiStore.ts - Hook renders
shared/components/Toast.tsx
This follows the architecture rules: modules/ → shared/ → store/ (allowed import direction).