Skip to content

DalgoT4D/dalgo-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

109 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dalgo-core

Central repo for AI-assisted development workflows, specs, plans, and Claude Code configuration for the Dalgo platform.

Repo Structure

dalgo-core/
├── .claude/
│   ├── agents/              # Specialized AI agents (auto-invoked by context)
│   ├── commands/
│   │   ├── product/         # PM commands
│   │   └── engineering/     # Engineering commands
│   └── skills/              # Evaluation lenses / thinking frameworks
├── prototypes/
│   └── {feature-name}/
│       └── brief.md             # PM's prototype brief (spike)
├── features/
│   └── {feature-name}/
│       ├── spec.md              # PM's original spec (full vision)
│       ├── v1/
│       │   ├── spec.md          # Engineering's scoped iteration
│       │   ├── research.md      # Codebase & external research
│       │   ├── plan.md          # Implementation plan (HLD, LLD, security, milestones)
│       │   └── tasks.md         # Execution progress checkpoint
│       └── v2/
│           └── ...              # Next iteration
├── DDP_backend -> ../DDP_backend   (symlink, gitignored)
└── webapp_v2 -> ../webapp_v2       (symlink, gitignored)

Three Types of Tools

Type Location Purpose How to Use
Commands .claude/commands/{product,engineering}/ Step-by-step workflows with inputs and outputs /product/command or /engineering/command
Agents .claude/agents/ Specialized personas invoked by context Claude picks the right agent automatically
Skills .claude/skills/ Evaluation lenses — shift how Claude looks at a problem Invoke by name (e.g. /design-review)

Feature Lifecycle

Spike Track (PM or Anyone)

Quick validation with NGO partners before committing engineering time. PM owns this end-to-end.

Run /product/prototype "feature idea" or /product/prototype path/to/notes.md
Saves to prototypes/{feature-name}/brief.md
Then Optionally builds prototype code in a separate branch
Review Show to the team before showing to users
After testing Validated → /product/write-spec to promote. Didn't work → archive & move on.
Screenshot 2026-04-21 at 12 53 17 PM
flowchart TD
    A["Idea or NGO request"] --> B["Prototype
    Run /product/prototype"]
    B --> |"brief.md"| C["Build"]
    C --> R{"Show to the team"}
    R --> |"Approved"| F["Test with NGO"]
    R --> C
    R --> |"Rejected"|X["Archive"]
    F --> G{Validated?}
    G --> |Yes| H["Write spec
    Run /product/write-spec"]
    G --> |"Maybe / No"| I["Archive"]

    style A fill:#f3f4f6,stroke:#6b7280,color:#000
    style B fill:#fff,stroke:#6b7280,color:#000
    style C fill:#fff,stroke:#6b7280,color:#000
    style R fill:#fff,stroke:#6b7280,color:#000
    style F fill:#fff,stroke:#6b7280,color:#000
    style G fill:#fff,stroke:#6b7280,color:#000
    style H fill:#fff,stroke:#6b7280,color:#000
    style X fill:#fef3c7,stroke:#f59e0b,color:#000
    style I fill:#fef3c7,stroke:#f59e0b,color:#000
Loading

Engineering Track

Production-quality implementation for confirmed features. Engineering owns this. All artifacts in features/.

flowchart TD
    A["Write spec
    Run /product/write-spec"] --> |"spec.md"| B["Review Product Spec"]
    B --> C["Scope version"]
    B --> |"feedback review loop"| A
    C --> |"v1/spec.md"| D["Plan & iterate
    Run /engineering/plan-feature"]
    C --> |"v1/spec.md"| E["Design/UX"]
    D --> |"plan.md"| F["Execute plan
    Run /engineering/execute-plan"]
    F --> DR1["Design review"]
    DR1 --> F
    E --> DR1
    DR1 --> |"Design incorporated"| G["Validate spec
    Run /engineering/validate-spec"]
    G --> H["Review PR
    Run /engineering/review-pr"]
    H --> I["Merge + Deploy"]
    I --> J{Next?}
    J --> |Bug| K["Debug issue
    Run /engineering/debug-issue"]
    J --> |v2| C

    style A fill:#fff,stroke:#6b7280,color:#000
    style C fill:#fff,stroke:#6b7280,color:#000
    style D fill:#fff,stroke:#6b7280,color:#000
    style F fill:#fff,stroke:#6b7280,color:#000
    style G fill:#fff,stroke:#6b7280,color:#000
    style H fill:#fff,stroke:#6b7280,color:#000
    style I fill:#d1fae5,stroke:#10b981,color:#000
    style J fill:#fff,stroke:#6b7280,color:#000
    style K fill:#fff,stroke:#6b7280,color:#000
Loading

When to use which

Spike Engineering
Confidence "I think this might work" "We know we need this"
Goal Validate with an NGO user Ship to production
Time Hours Days
Workspace prototypes/ features/
Command /product/prototype /product/write-spec/engineering/*

Commands Reference

Product Commands

/product/prototype

Quick spike — validate an idea with NGO partners before committing to a full spec.

/product/prototype "let users bookmark their favorite dashboard charts"

Output: prototypes/{feature-name}/brief.md (1-page brief with problem, scope, quick plan) Optionally: builds the prototype code with # PROTOTYPE markers Next step: Test with NGO → if validated, /product/write-spec "{feature name}"

/product/write-spec

Two modes in one command:

Mode A — New spec (from an idea):

/product/write-spec "scheduled report emails for dashboard owners"

Output: features/{feature-name}/spec.md (full vision)

Mode B — Scope a version (from an existing spec):

/product/write-spec features/scheduled-reports

Output: features/{feature-name}/v1/spec.md (or v2, v3, etc.) Next step: /engineering/plan-feature features/{feature-name}/v1/spec.md

Engineering Commands

/engineering/plan-feature

Generate an implementation plan with HLD, LLD, security review, and milestones.

/engineering/plan-feature features/scheduled-reports/v1/spec.md

Output: features/{feature-name}/v1/plan.md + research.md

The plan is a draft — engineers iterate on it through conversation. Claude updates plan.md in place.

/engineering/execute-plan

Implement the feature following the plan, with checkpointing.

/engineering/execute-plan features/scheduled-reports/v1/plan.md

Creates: features/{feature-name}/v1/tasks.md for progress tracking Next step: /engineering/validate-spec

/engineering/debug-issue

Diagnose a bug from a Sentry URL, error message, or behavior description.

/engineering/debug-issue https://sentry.io/issues/DALGO-123/
/engineering/debug-issue "500 error on /api/v1/organizations/"

/engineering/review-pr

Structured code review — checks service-specific conventions, security, testing, breaking changes.

/engineering/review-pr 142
/engineering/review-pr https://github.com/DalgoT4D/DDP_backend/pull/142

Does NOT auto-post to GitHub — outputs the review for you to use.

/engineering/validate-spec

Validates the implementation against the spec. Checks that all spec requirements are met, runs lint, tests, and migration checks. Read-only.

/engineering/validate-spec

Documentation (skill, no slash command)

Triggered by natural-language prompts like:

generate docs for orchestrate
update docs for #142
write a docs page for data quality
refresh docs for the abc123..def456 changes

Claude auto-loads the documentation skill in .claude/skills/documentation/. The skill walks you through research → placement (derived from webapp_v2/app/ + dalgo_docs/sidebars.js) → writing → sidebar update → domain-map update.

Output: Markdown page in dalgo_docs/docs/ at the correct location, screenshots in dalgo_docs/static/img/{feature}/, and updated dalgo_docs/sidebars.js if it's a new page.

The skill is broken into workflow.md, sidebar.md, repo-structure.md, and style-*.md files — each under 100 lines.


Screenshot Engine

Single script (scripts/screenshot.py) that runs YAML recipes from scripts/recipes/. Each recipe describes the user flows for one feature as a list of flows × steps (navigate, click, wait, snap, press). One recipe per top-level feature.

Setup — first time:

cd dalgo-core
uv sync                              # creates .venv/, installs deps from uv.lock
uv run playwright install chromium   # one-time browser download

Create dalgo-core/.env (gitignored, auto-loaded via python-dotenv):

E2E_ADMIN_EMAIL=your@email.com
E2E_ADMIN_PASSWORD=yourpassword
E2E_BASE_URL=https://staging-app.dalgo.org

Run:

cd dalgo-core
uv run python scripts/screenshot.py              # run all recipes (bulk refresh)
uv run python scripts/screenshot.py kpis         # one feature
uv run python scripts/screenshot.py kpis metrics # several
uv run python scripts/screenshot.py --list       # show available recipes

# Inline base URL override (skips .env's E2E_BASE_URL):
E2E_BASE_URL=http://localhost:3001 uv run python scripts/screenshot.py

Failure semantics: required flows abort their recipe (exit code 2); optional flows print a warning and skip. The script logs / / per step so you can spot drift.

Adding a new feature: drop a scripts/recipes/{feature}.yaml file. The engine auto-discovers it. See scripts/recipes/kpis.yaml or ingest.yaml for patterns.

Staging environment:

Staging app — Impact at a Glance

The staging environment is at https://staging-app.dalgo.org. Ask the team for access credentials if you don't have them.


Agents

Agents are specialized personas that Claude invokes automatically when the context matches. Agents use skills as reference material for their decisions.

Agent What It Does Skills Used
debugger Diagnoses bugs across the full stack — Django backend, Next.js frontend, or cross-cutting. backend-architecture, frontend-architecture
senior-product-manager Product strategy and feature specs. Prioritization, roadmap, build-vs-buy, spec writing. None — uses its own evaluation framework
ux-design-expert UI/UX design using Dalgo's design system (Shadcn, teal brand, Tailwind). design-review (patterns.md for design system reference)
ngo-data-platform-consultant Evaluates features as "Priya" — a non-technical NGO program manager. None — uses its own NGO persona framework

Skills

Skill What It Does
design-review Combined UX expert + NGO user evaluation of UI components or screenshots.
tal-lens Tal Raviv's technology philosophy — demystify, build first, anti-hype, clarity over cleverness.
documentation Workflow + IA + style guide for Dalgo's user-facing Docusaurus docs. Triggered by prompts like "generate/update docs for X" or "write a doc page for Y".

Common Workflows

Spike (idea to validation)

/product/prototype "feature idea"
# test with NGO partner...
# if validated:
/product/write-spec "feature idea"

New Feature (idea to merge)

/product/write-spec "feature idea"
/product/write-spec features/{name}
/engineering/plan-feature features/{name}/v1/spec.md
# iterate on plan...
/engineering/execute-plan features/{name}/v1/plan.md
/engineering/validate-spec
/engineering/review-pr <pr-number>

Bug Fix

/engineering/debug-issue "error description or Sentry URL"
# implement the fix
/engineering/validate-spec

Design Feedback

/design-review

Writing or Updating Docs

# Generate a doc page for a feature (triggers the `documentation` skill)
"generate docs for reports"

# After a PR lands, update affected docs
"update docs for #142"

# Capture all screenshots from staging in one run
uv run python scripts/screenshot.py

# Preview the docs site locally
cd ../dalgo_docs && npm start

Next Iteration

/product/write-spec features/{name}
# creates v2/spec.md from remaining items in original spec
/engineering/plan-feature features/{name}/v2/spec.md

What's Intentionally NOT Included

Idea Why Not
/write-tests Test writing is part of /engineering/execute-plan.
/deploy Deployment depends on CI/CD that varies per environment.
/estimate Effort estimation needs team velocity context Claude can't provide.
Repo-level agents Workspace-level agents read all repos via symlinks.
Research agent Research is a step within /engineering/plan-feature, saved as research.md.

About

Dalgo Monorepo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages