Skip to content

Commit 508df87

Browse files
sergeyklayclaude
andcommitted
refactor: move layout docs to CONTRIBUTING.md, fix module path
Move project layout documentation from go.mod comments to CONTRIBUTING.md where contributors expect to find it. Fix module path to match the actual repository (github.com/sergeyklay/sortie). Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent 63830c6 commit 508df87

2 files changed

Lines changed: 22 additions & 17 deletions

File tree

CONTRIBUTING.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Contributing to Sortie
2+
3+
## Project Layout
4+
5+
Sortie uses the standard Go `cmd/internal` pattern:
6+
7+
```
8+
cmd/sortie/ — main entry point, CLI flag parsing
9+
internal/domain/ — domain types: Issue, TrackerAdapter, AgentAdapter interfaces
10+
internal/config/ — workflow loader, typed config, prompt template rendering
11+
internal/orchestrator/ — poll loop, dispatch, reconciliation, retry, state machine
12+
internal/tracker/ — tracker adapter implementations (jira, file, etc.)
13+
internal/agent/ — agent adapter implementations (claude-code, mock, etc.)
14+
internal/workspace/ — workspace creation, path safety, hook execution
15+
internal/server/ — HTTP API and dashboard
16+
```
17+
18+
The `internal/` directory enforces package-level encapsulation at the compiler
19+
level — external consumers cannot import internal packages. Each architecture
20+
component maps to one internal sub-package, keeping dependencies explicit and
21+
testable in isolation.

go.mod

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
// Project layout: cmd/internal pattern (Go standard project layout).
2-
//
3-
// cmd/sortie/ — main entry point, CLI flag parsing
4-
// internal/domain/ — domain types: Issue, TrackerAdapter, AgentAdapter interfaces
5-
// internal/config/ — workflow loader, typed config, prompt template rendering
6-
// internal/orchestrator/ — poll loop, dispatch, reconciliation, retry, state machine
7-
// internal/tracker/ — tracker adapter implementations (jira, file, etc.)
8-
// internal/agent/ — agent adapter implementations (claude-code, mock, etc.)
9-
// internal/workspace/ — workspace creation, path safety, hook execution
10-
// internal/server/ — HTTP API and dashboard
11-
//
12-
// Rationale: the cmd/internal split is the dominant Go convention. The internal/
13-
// directory enforces package-level encapsulation at the compiler level — external
14-
// consumers cannot import internal packages. Each architecture component maps to
15-
// one internal sub-package, keeping dependencies explicit and testable in isolation.
16-
17-
module github.com/sortie-ai/sortie
1+
module github.com/sergeyklay/sortie
182

193
go 1.26.1

0 commit comments

Comments
 (0)