@@ -4,72 +4,38 @@ Quick-reference for any agent working on this repository.
44
55---
66
7- ## Project Overview
7+ ## Repository Layout
88
9- ** CTBase.jl** is the foundational Julia package in the [ control-toolbox] ( https://github.com/control-toolbox ) ecosystem.
10- It provides the ** base layer** : shared types, exceptions, extensions infrastructure, and development tools.
11-
12- ---
13-
14- ## Source Architecture
15-
16- Submodule layout (all public symbols accessed via qualified paths — no top-level exports):
9+ Standard control-toolbox package structure. Each directory may contain a ` README.md `
10+ with package-specific details — read it before working in that directory.
1711
1812``` text
19- src/
20- ├── CTBase.jl # Top-level manifest — exports nothing
21- ├── Core/ # Core types and utilities
22- ├── Descriptions/ # Type descriptions and metadata
23- ├── Exceptions/ # Structured exception types
24- ├── Extensions/ # Extension infrastructure
25- └── Unicode/ # Unicode utilities
26-
27- ext/
28- ├── CoveragePostprocessing.jl # Coverage report postprocessing
29- ├── DocumenterReference.jl # Documenter.jl reference generation
30- └── TestRunner.jl # Test runner with progress bar
31-
32- test/suite/ # Tests organised by functionality (not by src layout)
33- docs/ # Documenter.jl site (auto-generated API)
34- dev/ # Code philosophy, operational rules, plan template (versioned)
13+ src/ # Source code: one submodule per responsibility, no top-level exports
14+ ext/ # Weak-dependency extensions (loaded on demand by Julia)
15+ test/suite/ # Test suite: organised by functionality, not by src/ layout
16+ docs/ # Documentation site (DocumenterVitepress)
3517```
3618
3719---
3820
39- ## Developer resources
40-
41- | File | Purpose |
42- | ---| ---|
43- | [ ` dev/philosophy/PHILOSOPHY.md ` ] ( dev/philosophy/PHILOSOPHY.md ) | Code philosophy — modules, types/traits, exceptions, docstrings, testing, docs |
44- | [ ` dev/RULES.md ` ] ( dev/RULES.md ) | Operational rules — running tests (MCP), building docs, git, output capture |
45- | [ ` dev/planning.md ` ] ( dev/planning.md ) | Plan template — phases, steps, human checkpoints |
46-
47- ---
48-
49- ## Devin Workflows
21+ ## Developer Resources
5022
51- | Workflow | Trigger | Purpose |
52- | ---| ---| ---|
53- | ` architecture.md ` | — | Introducing new types, restructuring modules, reviewing SOLID/patterns |
54- | ` docstrings.md ` | — | Writing or reviewing Julia docstrings |
55- | ` documentation.md ` | ` glob: docs/**/* ` | Documenter.jl layout, ` make.jl ` template, ` api_reference.jl ` , ` InterLinks ` setup |
56- | ` exceptions.md ` | — | Adding error paths, contract stubs, argument validation |
57- | ` modules.md ` | ` glob: src/**/*.jl, ext/**/*.jl ` | Submodule conventions: qualified imports, manifest pattern, export policy, DAG ordering |
58- | ` performance.md ` | — | Hot paths, inner loops, profiling, benchmarking |
59- | ` plan.md ` | — | Writing an implementation plan before coding |
60- | ` testing-creation.md ` | — | Writing or reviewing test files under ` test/suite/ ` |
61- | ` testing-execution.md ` | ` model_decision ` | How to run tests (commands, ` tee ` capture) |
62- | ` type-stability.md ` | — | New structs, parametric types, ` @inferred ` test design |
23+ Design philosophy, operational rules, and plan templates live in the
24+ [ control-toolbox Handbook] ( https://github.com/control-toolbox/Handbook ) :
6325
64- Workflows live in ` .devin/workflows/ ` .
26+ | Topic | Link |
27+ | --- | --- |
28+ | Code philosophy (modules, types/traits, exceptions, docstrings, testing, docs) | [ ` PHILOSOPHY.md ` ] ( https://raw.githubusercontent.com/control-toolbox/Handbook/refs/heads/main/PHILOSOPHY.md ) |
29+ | Operational rules (tests, coverage, docs, git) | [ ` RULES.md ` ] ( https://raw.githubusercontent.com/control-toolbox/Handbook/refs/heads/main/RULES.md ) |
30+ | Plan template | [ ` PLAN.md ` ] ( https://raw.githubusercontent.com/control-toolbox/Handbook/refs/heads/main/PLAN.md ) |
6531
6632---
6733
6834## Key Conventions
6935
70- - ** No top-level exports** — use ` CTBase .Submodule.symbol` everywhere.
71- - ** Qualified imports** — ` using PackageName: PackageName ` , never bare ` using ` .
36+ - ** No top-level exports** — use ` Package .Submodule.symbol` everywhere.
37+ - ** Qualified imports** — ` import Pkg: Pkg ` , never bare ` using ` .
7238- ** Fake types at module top-level** — never inside test functions.
73- - ** Plans before code** — write a plan and confirm with the user before touching files. Template: [ ` dev/planning.md ` ] ( dev/planning.md ) .
39+ - ** Plans before code** — write a plan and confirm with the user before touching files.
7440- ** Docstrings last** — written only after all implementation steps are stable.
7541- ** Never commit or push without explicit user approval.**
0 commit comments