This project supports three AI agents, each with their own entry point and instruction files:
- Cline AI →
.clinerules/main-rules.md(primary entry point for Cline AI) - Codex CLI →
AGENTS.md(primary entry point for Codex CLI) - VS Code Copilot →
.github/copilot-instructions.md(primary entry point for VS Code Copilot)
.clinerules/directory contains Cline AI's personal instruction files and operational rulesmemory-bank/directory contains project-wide documentation shared by all agentsAGENTS.mdis Codex CLI's personal instruction and context file.github/copilot-instructions.mdcontain VS Code Copilot's instruction files
All operational rules and protocols are maintained in the modular files under .clinerules/ (for Cline AI) and project-wide documentation in memory-bank/. All agents and contributors must read and follow their respective instruction files at the start of every session and before any planning or implementation.
All project setup and file/folder creation must be performed via scripts, never manually.
- All setup actions (mkdir, touch, etc.) must be performed via scripts in the
scripts/directory. - Scripts must never overwrite existing files or folders; they must check for existence and skip or warn if present.
- The following structure must exist at the project root:
.github/(directory).vscode/(directory)memory-bank/(directory).gitignore(file).clinerules(file)README.md(file)AGENTS.md(file, replaces any use ofcodex.md)memory-bank/dependencies.md(file)
AGENTS.mdis now the default repository context/instructions markdown file for Codex CLI and related tools.- All references to
codex.mdin scripts, documentation, and templates must be replaced withAGENTS.md. - New and existing projects must include an
AGENTS.mdfile at the root. - Workflows and automation should ignore
codex.mdand useAGENTS.mdexclusively. codex.mdis deprecated and must not be referenced, maintained, or included in any workflow. OnlyAGENTS.mdis valid going forward.
- All rules and intentions must be documented in the README before implementation.
- The README must always be markdown-lint strict mode compliant.
- All scripts must be idempotent and resilient to repeated runs.
- All new rules must be added to the README before being implemented.
- All dependencies and relationships must be tracked in
memory-bank/dependencies.mdand referenced in all Memory Bank files. - Every dependency must include a "why" explanation and an impact analysis. Circular dependencies must be justified. Bidirectional tracking is required.
- All files, components, and processes must explicitly document what they depend on, what depends on them, and why.
- The
memory-bank/dependencies.mdfile serves as the registry for all explicit, implicit, and reverse dependencies. - Each Memory Bank file must include a "Dependencies and Relationships" section, listing:
- Depends On: Upstream dependencies
- Required By: Downstream dependencies
- Why This Order: Rationale for dependency order
- Impact Analysis: Consequences of changes or reversals
- Run
bash scripts/setup_project.shto create the required files and folders. - The script will not overwrite any existing files or folders.
- Place all future shell scripts in the
scripts/directory. - Update this README with any new rules before implementing them.
Code is organized by language and framework at the project root:
-
src/— Main TypeScript project source. When both a TypeScript library and a Next.js web app coexist, place the TS code insrc/and the Next.js app inweb/. If the codebase consists solely of a Next.js application, you may omitweb/and host the app directly at the project root. -
web/— Next.js application when coexisting with other code. -
scripts/— Shell scripts for setup and automation. Only shell scripts should live here. -
python/— Python projects, modules, and utilities. -
notebooks/— Jupyter notebooks and related resources.
- TypeScript code should always go in
src/unless it's a standalone Next.js application - When both TypeScript libraries and Next.js apps exist, separate them into
src/andweb/respectively - Shell scripts must be placed exclusively in
scripts/ - Python code and modules belong in
python/ - Jupyter notebooks and related data science resources go in
notebooks/ - Each directory should maintain its own README.md with specific setup and usage instructions
The scripts/setup_project.sh script now includes:
- File existence and size checks before writing
- Directory creation with
mkdir -pand validation - Logging of all actions (creation, skipping, size reporting)
- Never overwrites existing files; only adds placeholders if files are empty
- Clear annotations and comments explaining each validation step
All actions are self-documented and resilient to repeated runs. Review the script for detailed logic and intent.
This project includes a modular AI agent framework for automated code generation and quality assurance. The framework is organized into two main components:
Parametric prompt templates for AI-assisted development workflows:
ai-template-manager.prompt.md— Enhanced template generation with parametric inputsscript-generator.prompt.md— Resilient automation script generationdocker-generator.prompt.md— Parameterized Docker configuration generationinstruction-generator.prompt.md— Generate .instructions.md files for coding standardstemplate-manager.prompt.md— Basic template manager (legacy)
Coding standards that are automatically applied during AI-assisted development:
typescript-standards.instructions.md— Comprehensive TypeScript coding standardspython-standards.instructions.md— PEP 8 and modern Python practicespython-notebook-standards.instructions.md— Jupyter notebook standards and ML best practicesfile-organization.instructions.md— Project structure and file organization rules
- With VS Code Copilot: Use
@workspacecommands referencing specific prompt files - With Cline AI: Reference instruction files for automatic standards application
- With Codex CLI: Invoke prompt templates with parametric inputs using
${input:name:default}syntax
- Parametric Inputs: Use
${input:variableName:defaultValue}syntax in prompts - Cross-referencing: Automatic links between prompts, instructions, and memory bank files
- Standards Enforcement: Automatic application of coding standards during generation
- Memory Bank Integration: All components reference and update dependency tracking
- Markdown-lint Compliance: All files follow strict markdown formatting requirements
All documentation and source files are linted with markdownlint and formatted with prettier.
Run scripts/setup_linting.sh once to install the required tooling. Afterwards use:
npm run lint
npm run formatSee LINTING.md for full details.
This README and all scripts must remain markdown-lint strict mode compliant at all times.
- Uses markdownlint.
- Config:
.markdownlint.yaml - Run:
npm run lint:md(autofix enabled)
- Uses Prettier.
- Config:
.prettierrc.yaml - Run:
npm run format:prettier(autofix enabled)
- Recommended Extensions:
esbenp.prettier-vscode,DavidAnson.vscode-markdownlint - Auto-fix on save is enabled.
All contributors and AI agents must ensure all code is autofixed before commit. Autofix is mandatory.