Design algorithms with LaTeX pseudocode and UML diagrams. Generate algorithmic environments, Mermaid class/sequence diagrams, and ensure consistency between pseudocode and implementation. Use when formalizing methods for a paper.
---
name: algorithm-design
description: Design algorithms with LaTeX pseudocode and UML diagrams. Generate algorithmic environments, Mermaid class/sequence diagrams, and ensure consistency between pseudocode and implementation. Use when formalizing methods for a paper.
argument-hint: [method-description]
---
# Algorithm Design
Formalize methods into algorithm pseudocode and system architecture diagrams.
## Input
- `$0` — Method description or implementation to formalize
## References
- Algorithm and diagram templates: `~/.claude/skills/algorithm-design/references/algorithm-templates.md`
## Workflow
### Step 1: Formalize the Algorithm
1. Define clear inputs and outputs
2. Identify the main loop / recursive structure
3. Specify all parameters and their types
4. Write step-by-step pseudocode
### Step 2: Generate LaTeX Pseudocode
Use `algorithm` + `algpseudocode` environments:
```latex
\begin{algorithm}[t]
\caption{Method Name}
\label{alg:method}
\begin{algorithmic}[1]
\Require Input $x$, parameters $\theta$
\Ensure Output $y$
\State Initialize ...
\For{$t = 1$ to $T$}
\State $z_t \gets f(x_t; \theta)$
\If{convergence criterion met}
\State \textbf{break}
\EndIf
\EndFor
\State \Return $y$
\end{algorithmic}
\end{algorithm}
```
### Step 3: Generate UML Diagrams (Mermaid)
#### Class Diagram
```mermaid
classDiagram
class Model {
+forward(x: Tensor) Tensor
+train_step(batch) float
}
```
#### Sequence Diagram
```mermaid
sequenceDiagram
participant M as Main
participant D as DataLoader
M->>D: load_data()
D-->>M: batches
```
### Step 4: Verify Consistency
- Every pseudocode step must map to a code module
- Every class in the UML must exist in the implementation
- Parameter names must match between pseudocode and code
## Rules
- Use standard algorithmic notation (not code syntax)
- Number lines for easy reference
- Include complexity analysis as a comment or proposition
- Use `\Require` / `\Ensure` for inputs/outputs
- Keep pseudocode at the right abstraction level — not too detailed, not too vague
## Related Skills
- Upstream: [atomic-decomposition](../atomic-decomposition/), [math-reasoning](../math-reasoning/)
- Downstream: [experiment-code](../experiment-code/), [paper-writing-section](../paper-writing-section/)
- See also: [symbolic-equation](../symbolic-equation/)
Creator's repository · lingzhi227/agent-research-skills