Skip to content

Commit 63830c6

Browse files
sergeyklayclaude
andcommitted
feat: initialize Go module and project directory skeleton
Tasks 0.1 and 0.2 — set up the cmd/internal project layout with a minimal main.go that prints version and exits. Directory structure maps each architecture component to an internal sub-package. Co-Authored-By: Claude Opus 4.6 <[email protected]>
1 parent 6c76dbd commit 63830c6

9 files changed

Lines changed: 33 additions & 0 deletions

File tree

cmd/sortie/main.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
)
7+
8+
// Version is set at build time via -ldflags.
9+
var Version = "dev"
10+
11+
func main() {
12+
fmt.Printf("sortie %s\n", Version)
13+
os.Exit(0)
14+
}

go.mod

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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
18+
19+
go 1.26.1

internal/agent/.gitkeep

Whitespace-only changes.

internal/config/.gitkeep

Whitespace-only changes.

internal/domain/.gitkeep

Whitespace-only changes.

internal/orchestrator/.gitkeep

Whitespace-only changes.

internal/server/.gitkeep

Whitespace-only changes.

internal/tracker/.gitkeep

Whitespace-only changes.

internal/workspace/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)