Skip to content

Commit 9b39200

Browse files
authored
Merge pull request #27 from RolnickLab/pipeline-setup
pipeline-setup
2 parents 67de01a + 4b36e36 commit 9b39200

86 files changed

Lines changed: 3644 additions & 2584 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gemini/GEMINI.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
You must strictly adhere to the project rules defined in `docs/agents/agent_instructions.md`. Read this file before making any significant architectural, geospatial data processing changes, or general code modifications. Use `read_file` to load `docs/agents/agent_istructions.md`.
1+
You must strictly adhere to the project rules defined in [docs/agents/agent_instructions.md](../docs/agents/agent_instructions.md). Read this file before making any significant architectural, geospatial data processing changes, or general code modifications. Use `read_file` to load [docs/agents/agent_instructions.md](../docs/agents/agent_instructions.md).

.github/copilot-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
You must strictly adhere to the project rules defined in `docs/agents/agent_instructions.md`. Read this file before making any significant architectural, geospatial data processing changes, or general code modifications.
1+
You must strictly adhere to the project rules defined in [docs/agents/agent_instructions.md](../docs/agents/agent_instructions.md). Read this file before making any significant architectural, geospatial data processing changes, or general code modifications.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,3 +183,4 @@ data/*
183183
scripts/config.sh
184184
Makefile.private
185185
configs/geospatial_tools_ini.yaml
186+
**/settings.local.json

.markdown-link-check.json

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,6 @@
33
{
44
"pattern": "http://localhost"
55
},
6-
{
7-
"pattern": "tps://github.com/RolnickLab/best-practices-documentation/tree"
8-
},
9-
{
10-
"pattern": "tps://github.com/RolnickLab/best-practices-documentation/issues"
11-
},
12-
{
13-
"pattern": "tps://github.com/RolnickLab/best-practices-documentation/pulls"
14-
},
15-
{
16-
"pattern": "https://github.com/RolnickLab/best-practices-documentation/wiki"
17-
},
18-
{
19-
"pattern": "https://github.com/RolnickLab/best-practices-documentation/wiki/DRAC-%E2%80%90-Compute-Canada"
20-
},
216
{
227
"pattern": "https://github.com/RolnickLab/lab-advanced-template"
238
},
@@ -35,6 +20,9 @@
3520
},
3621
{
3722
"pattern": "https://www.earthdata.nasa.gov/"
23+
},
24+
{
25+
"pattern": "https://earthexplorer.usgs.gov"
3826
}
3927
]
4028
}

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
You must strictly adhere to the project rules defined in `docs/agents/agent_instructions.md`. Read this file before making any significant architectural, geospatial data processing changes, or general code modifications.
1+
You must strictly adhere to the project rules defined in [docs/agents/agent_instructions.md](docs/agents/agent_instructions.md). Read this file before making any significant architectural, geospatial data processing changes, or general code modifications.

docs/agents/README.md

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,13 @@ Yes, these instructions are more prescriptive than *current* best practices, but
1414

1515
The `instructions/` folder contains specific skill files that guide the agent's behavior for particular tasks. Here is a summary of each skill, its purpose, and when to use it:
1616

17-
| Skill | Description | When to Use & Why |
18-
| ------------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
19-
| `analytics.md` | Extracts truth from experimental data with statistical rigor. | Use for Exploratory Data Analysis (EDA) and visualization to ensure reproducibility and prevent misleading claims. |
20-
| `formal_planning.md` | Enforces a structured planning protocol via a Formal Design Document. | Use when explicitly asked for a plan, architecture, or proposal to map out scope, trade-offs, and steps before coding. |
21-
| `infrastructure.md` | Manages reproducible and resilient environments/pipelines as code. | Use for containerization (Docker), HPC/SLURM cluster setup, or CI/CD tasks to ensure fault tolerance and exact dependency pinning. |
22-
| `KNOWLEDGE.md` | A centralized repository for project-specific tribal knowledge. | Use to document or consult specific findings, library quirks, or architectural decisions to avoid repeating past mistakes. |
23-
| `ml.md` | Builds state-of-the-art, reproducible, and reliable machine learning pipelines. | Use for ML model training, evaluation, and experiment management to guarantee strict data isolation and deterministic execution. |
24-
| `orchestrator.md` | Focuses on horizontal integration and strategic decomposition of goals. | Use for multi-component tasks to define explicit contracts between modules and ensure end-to-end flows work correctly. |
25-
| `plan_to_tasks.md` | Decomposes high-level plans into modular, atomic, and verifiable tasks. | Use when transitioning from planning to execution to ensure each step has clear context, acceptance criteria, and testing protocols. |
26-
| `python.md` | Elevates Python scripts into robust, maintainable, and type-safe software. | Use for all Python development and QA to enforce strict typing, SOLID principles, vectorization, and automated workflows. |
27-
| `root_cause_analysis.md` | Systematically diagnoses and permanently fixes software failures. | Use when presented with a bug, traceback, or unexpected result to isolate the failure (MRE) and target the actual root cause. |
28-
| `security.md` | Identifies vulnerabilities, enforces defense-in-depth, and ensures data privacy. | Use for tasks involving authentication, untrusted input, or infrastructure to prevent injection attacks and hardcoded secrets. |
29-
| `specdrivendev.md` | Implements lightweight Spec-Driven Development to define contracts first. | Use when starting a new feature to define data structures, signatures, and docstrings before writing logic, preventing LLM hallucinations. |
30-
| `systemdesign.md` | Designs systems that are maintainable, evolvable, and robust. | Use for architectural decisions to enforce separation of concerns, configuration-first design, and proper dependency injection. |
17+
| Skill | Description | When to Use & Why |
18+
| ------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
19+
| `planning.md` | Combined Planning, Specification (SDD), and Task Decomposition Protocol. | Use for any multi-step implementation to map out scope, define technical contracts (SDD), and break down work into atomic tasks. |
20+
| `software-dev.md` | Unified Software Development, ML, Analytics & Infrastructure Protocol. | Use for Python development, system design, ML/geospatial processing, data analysis, and infrastructure/environment management. |
21+
| `review.md` | Harsh Security & Architecture Review Protocol. | Use to identify vulnerabilities (tokens, paths, SSL) and tear apart implementations for performance bottlenecks and architectural rot. |
22+
| `root_cause_analysis.md` | Systematically diagnoses and permanently fixes software failures. | Use when presented with a bug, traceback, or unexpected result to isolate the failure (MRE) and target the actual root cause. |
23+
| `KNOWLEDGE.md` | A centralized repository for project-specific tribal knowledge. | Use to document or consult specific findings, library quirks, or architectural decisions to avoid repeating past mistakes. |
3124

3225
## How to use them
3326

@@ -36,16 +29,36 @@ This template comes with CLAUDE.md and GEMINI.md files that essentially point to
3629
In practice... it's not always the case. It is probably better to manually feed the instructions directly to the agent/tool as context in your prompt just to make sure:
3730

3831
```text
39-
Using @docs/agents/agent_instructions.md, @docs/agents/instructions/python.md, and @docs/agents/instructions/systemdesign.md and @docs/agents/instructions/formal_planning.md, create a plan for a new class that will ...
32+
Using @docs/agents/agent_instructions.md, @docs/agents/instructions/software-dev.md, and @docs/agents/instructions/planning.md, create a plan for a new class that will ...
4033
```
4134

42-
When using models with smaller context windows, it will also be important to clear the context once in a while to ensure better results.
35+
It's usually a good thing to clear/compress the context once in a while to ensure better results.
4336

44-
For example:
37+
### Workflow example
4538

46-
- Create plan
47-
- Manually revise plan document
48-
- Clear context
49-
- Ask agent to implement first step of the plan
50-
- Clear context
51-
- Repeat
39+
First, define **what** you want to do, **how** and **why**. Go in as much detail as you can. Let's call this your *preliminary design document*.
40+
41+
You can also do this step through a chat interface with an LLM so you can brainstorm, ask questions, investigate starting points, development directions and library/tool selections.
42+
43+
Once you have your *preliminary design document*, you are ready to start using your agent.
44+
45+
- Activate `@docs/agents/instructions/planning.md`
46+
- **Create PLAN**
47+
- Ask agent to create a plan based on your *preliminary design document*
48+
- Manually revise plan document
49+
- **Create SPEC**
50+
- Ask agent to create a specification based on the plan
51+
- Manually revise the specification document
52+
- **Create TASKS**
53+
- Ask agent to create tasks based on the plan and specification created
54+
- Manually revise the tasks
55+
- **_CLEAR CONTEXT_**
56+
- Activate `@docs/agents/instructions/code_review.md`
57+
- Ask the agent to review your planning documents
58+
- **_CLEAR CONTEXT_**
59+
- Activate `@docs/agents/instructions/software_dev.md`
60+
- Ask agent to implement first task of the plan
61+
- Manual review
62+
- Commit work to git
63+
- **_COMPRESS CONTEXT_**
64+
- Repeat for subsequent tasks

0 commit comments

Comments
 (0)