Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
257 changes: 257 additions & 0 deletions .agents/skills/shipyard-agent/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
---
name: shipyard-agent-conventions
description: Development conventions and patterns for shipyard-agent. TypeScript Express project with mixed commits.
---

# Shipyard Agent Conventions

> Generated from [maxpetrusenko/shipyard-agent](https://github.com/maxpetrusenko/shipyard-agent) on 2026-03-23

## Overview

This skill teaches Claude the development patterns and conventions used in shipyard-agent.

## Tech Stack

- **Primary Language**: TypeScript
- **Framework**: Express
- **Architecture**: type-based module organization
- **Test Location**: separate
- **Test Framework**: vitest

## When to Use This Skill

Activate this skill when:
- Making changes to this repository
- Adding new features following established patterns
- Writing tests that match project conventions
- Creating commits with proper message format

## Commit Conventions

Follow these commit message conventions based on 8 analyzed commits.

### Commit Style: Mixed Style

### Prefixes Used

- `feat`
- `docs`
- `fix`
- `chore`

### Message Guidelines

- Average message length: ~53 characters
- Keep first line concise and descriptive
- Use imperative mood ("Add feature" not "Added feature")


*Commit message example*

```text
feat: polish ship-agent to 10/10 — 13 targeted improvements
```

*Commit message example*

```text
chore: gitignore AGENTS.md and CLAUDE.md
```

*Commit message example*

```text
docs: add README, presearch, and agent documentation
```

*Commit message example*

```text
fix: use npx tsx in bench.sh for reliable resolution
```

*Commit message example*

```text
feat: standalone ship-agent with bench harness
```

*Commit message example*

```text
docs: add critical test evidence and submission artifacts
```

*Commit message example*

```text
fix: return 401 for invalid firebase bearer tokens
```

*Commit message example*

```text
feat: stabilize board drag sync and add e2e test harness
```

## Architecture

### Project Structure: Single Package

This project uses **type-based** module organization.

### Source Layout

```
src/
├── config/
├── context/
├── graph/
├── multi-agent/
├── runtime/
├── server/
├── tools/
```

### Entry Points

- `src/app.ts`
- `src/index.ts`

### Configuration Files

- `mvp-1-collab-board/app/eslint.config.js`
- `mvp-1-collab-board/app/package.json`
- `mvp-1-collab-board/app/playwright.config.ts`
- `mvp-1-collab-board/app/tsconfig.json`
- `mvp-1-collab-board/app/vite.config.ts`
- `mvp-1-collab-board/functions/package.json`
- `package.json`
- `tsconfig.json`
- `vitest.config.ts`

### Guidelines

- Group code by type (components, services, utils)
- Keep related functionality in the same type folder
- Avoid circular dependencies between type folders

## Code Style

### Language: TypeScript

### Naming Conventions

| Element | Convention |
|---------|------------|
| Files | camelCase |
| Functions | camelCase |
| Classes | PascalCase |
| Constants | SCREAMING_SNAKE_CASE |

### Import Style: Mixed Style

### Export Style: Named Exports


*Preferred export style*

```typescript
// Use named exports
export function calculateTotal() { ... }
export const TAX_RATE = 0.1
export interface Order { ... }
```

## Testing

### Test Framework: vitest

### File Pattern: `*.test.ts`

### Test Types

- **Unit tests**: Test individual functions and components in isolation
- **E2e tests**: Test complete user flows through the application


*Test file structure*

```typescript
import { describe, it, expect } from 'vitest'

describe('MyFunction', () => {
it('should return expected result', () => {
const result = myFunction(input)
expect(result).toBe(expected)
})
})
```

## Error Handling

### Error Handling Style: Try-Catch Blocks


*Standard error handling pattern*

```typescript
try {
const result = await riskyOperation()
return result
} catch (error) {
console.error('Operation failed:', error)
throw new Error('User-friendly message')
}
```

## Common Workflows

These workflows were detected from analyzing commit patterns.

### Feature Development

Standard feature implementation workflow

**Frequency**: ~16 times per month

**Steps**:
1. Add feature implementation
2. Add tests for feature
3. Update documentation

**Files typically involved**:
- `mvp-1-collab-board/app/src/components/*`
- `mvp-1-collab-board/app/src/firebase/*`
- `mvp-1-collab-board/app/src/pages/*`
- `**/*.test.*`
- `**/api/**`

**Example commit sequence**:
```
Add planning docs and decision log from CollabBoard requirements
Close requirements gaps and map tasks to Linear tickets
Revert AGENTS and add submission PDF package
```


## Best Practices

Based on analysis of the codebase, follow these practices:

### Do

- Write tests using vitest
- Follow *.test.ts naming pattern
- Use camelCase for file names
- Prefer named exports

### Don't

- Don't skip tests for new features
- Don't deviate from established patterns without discussion

---

*This skill was auto-generated by [ECC Tools](https://ecc.tools). Review and customize as needed for your team.*
6 changes: 6 additions & 0 deletions .agents/skills/shipyard-agent/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
interface:
display_name: "Shipyard Agent"
short_description: "Repo-specific patterns and workflows for shipyard-agent"
default_prompt: "Use the shipyard-agent repo skill to follow existing architecture, testing, and workflow conventions."
policy:
allow_implicit_invocation: true
39 changes: 39 additions & 0 deletions .claude/commands/feature-development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: feature-development
description: Workflow command scaffold for feature-development in shipyard-agent.
allowed_tools: ["Bash", "Read", "Write", "Grep", "Glob"]
---

# /feature-development

Use this workflow when working on **feature-development** in `shipyard-agent`.

## Goal

Standard feature implementation workflow

## Common Files

- `mvp-1-collab-board/app/src/components/*`
- `mvp-1-collab-board/app/src/firebase/*`
- `mvp-1-collab-board/app/src/pages/*`
- `**/*.test.*`
- `**/api/**`

## Suggested Sequence

1. Understand the current state and failure mode before editing.
2. Make the smallest coherent change that satisfies the workflow goal.
3. Run the most relevant verification for touched files.
4. Summarize what changed and what still needs review.

## Typical Commit Signals

- Add feature implementation
- Add tests for feature
- Update documentation

## Notes

- Treat this as a scaffold, not a hard-coded script.
- Update the command if the workflow evolves materially.
Loading