Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
98386ba
docs: design tasks
sky-xo Jan 7, 2026
6b61777
feat(db): add tasks table schema
sky-xo Jan 9, 2026
a751856
feat(db): add Task type with Create and Get operations
sky-xo Jan 9, 2026
81db69a
feat(db): add UpdateTask operation with partial updates
sky-xo Jan 9, 2026
b5c85cb
feat(db): add ListRootTasks, ListChildTasks, and CountChildren
sky-xo Jan 9, 2026
ede0a97
feat(db): add DeleteTask with recursive cascade to children
sky-xo Jan 9, 2026
b81519c
feat(cli): add task ID generation with 5-char hex and collision retry
sky-xo Jan 9, 2026
8fe3b1f
feat(cli): add june task command with create/list/update/delete subco…
sky-xo Jan 9, 2026
16211fe
feat(db): add migration for tasks table on existing installations
sky-xo Jan 9, 2026
a58df34
test: add task workflow E2E test and update docs
sky-xo Jan 9, 2026
a9d7905
docs: update implementation progress - all tasks complete
sky-xo Jan 9, 2026
8cc83b1
docs: add persistent tasks section to README
sky-xo Jan 9, 2026
096f484
fix: address PR review comments for task feature
sky-xo Jan 9, 2026
d0a6944
fix: hide deleted tasks from direct ID lookup and use errors.Is
sky-xo Jan 9, 2026
245f654
fix: improve test reliability and add UpdateTask empty title validation
sky-xo Jan 9, 2026
745d444
docs: add June plugin architecture design
sky-xo Jan 10, 2026
2a5b032
docs: fresheyes fixes for plugin design
sky-xo Jan 10, 2026
fc4d0c6
docs: add June plugin implementation plan
sky-xo Jan 10, 2026
40d494b
docs: update implementation plan with skill decisions
sky-xo Jan 10, 2026
8daa824
docs: address fresheyes review findings
sky-xo Jan 10, 2026
c360455
feat(cli): add --note flag to task create
sky-xo Jan 10, 2026
8a27cc1
feat: add plugin infrastructure for Claude Code
sky-xo Jan 10, 2026
20b9078
feat: add june-skills directory with base skills
sky-xo Jan 10, 2026
23ce27c
feat(skills): add fresheyes review and june tasks to writing-plans
sky-xo Jan 10, 2026
db9d3ba
feat(skills): add model selection and june tasks to subagent-driven-d…
sky-xo Jan 10, 2026
01d2ef0
feat(skills): add june task integration to executing-plans
sky-xo Jan 10, 2026
9a201c9
feat: assemble skills from superpowers + june overrides
sky-xo Jan 10, 2026
7b74e9a
docs: add plugin documentation
sky-xo Jan 10, 2026
e4d1c25
docs: add plugin follow-up with open questions about task persistence…
sky-xo Jan 10, 2026
92ce02c
docs: add --full flag idea for complete task tree dump
sky-xo Jan 10, 2026
91167c1
feat: add marketplace.json for plugin distribution
sky-xo Jan 10, 2026
27732f7
docs: add marketplace installation instructions to README
sky-xo Jan 10, 2026
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
14 changes: 14 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "june",
"owner": {
"name": "Sky"
},
"plugins": [
{
"name": "june",
"source": "./",
"description": "Task-aware workflow skills with persistent state",
"version": "1.0.0"
}
]
}
5 changes: 5 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "june",
"description": "Task-aware workflow skills with persistent state",
"version": "1.0.0"
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
.worktrees/
.gocache/
.skill-cache/

# Test artifacts
*.test
Expand Down
37 changes: 37 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

June is a read-only TUI for viewing Claude Code subagent activity. It watches `~/.claude/projects/{project}/agent-*.jsonl` files and displays their transcripts in a terminal interface.

June is also a Claude Code plugin. Run `claude --plugin-dir .` to use june:* skills.

## Quick Commands

```bash
Expand Down Expand Up @@ -55,6 +57,41 @@ Names always include a unique 4-char ULID suffix. `--name` sets a prefix; if omi

Agent state is stored in `~/.june/june.db` (SQLite).

## Task Commands

Persist tasks across context compaction:

```bash
# Create root task
june task create "Implement auth feature" # Output: t-a3f8b

# Create child tasks
june task create "Add middleware" --parent t-a3f8b

# Create multiple tasks at once
june task create "Task 1" "Task 2" "Task 3"

# List root tasks
june task list

# Show task details and children
june task list t-a3f8b

# Update task
june task update t-a3f8b --status in_progress
june task update t-a3f8b --note "Started work"
june task update t-a3f8b --status closed --note "Done"

# Delete task (soft delete, cascades to children)
june task delete t-a3f8b

# JSON output for machine consumption
june task list --json
june task create "New task" --json
```

Tasks are scoped to the current git repo and branch.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

Clarify task scoping behavior.

The statement "Tasks are scoped to the current git repo and branch" is incomplete and potentially misleading. Only task creation and root listing (june task list without an ID) are scoped to the current repo and branch. ID-based operations (june task list <id>, june task update <id>, june task delete <id>) are intentionally global and work across branches, allowing users to maintain task visibility when switching branches.

Based on learnings, this design choice enables cross-branch task management.

📝 Suggested clarification
-Tasks are scoped to the current git repo and branch.
+Task creation and root listing are scoped to the current git repo and branch. 
+Once created, tasks can be accessed by ID from any branch using list/update/delete commands.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Tasks are scoped to the current git repo and branch.
Task creation and root listing are scoped to the current git repo and branch.
Once created, tasks can be accessed by ID from any branch using list/update/delete commands.
🤖 Prompt for AI Agents
In @CLAUDE.md at line 93, The current sentence "Tasks are scoped to the current
git repo and branch" is too broad—update the wording to state that only task
creation and root listing (e.g., "june task list" without an ID and task
creation commands) are scoped to the current git repo and branch, while ID-based
operations ("june task list <id>", "june task update <id>", "june task delete
<id>") are global across branches; make this single-line clarification so
readers understand that ID-based task management persists when switching
branches.


## Coding Conventions

- Follow TDD: write failing test, implement, verify
Expand Down
21 changes: 21 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,24 @@ clean:
# Build and run the TUI watch
watch:
go build $(LDFLAGS) -o june . && ./june watch

# Superpowers vendoring
SUPERPOWERS_VERSION := v4.0.3
SUPERPOWERS_REPO := https://github.com/obra/superpowers

.PHONY: build-skills
build-skills:
@# Fetch superpowers if not cached
@[ -d .skill-cache/superpowers ] || git clone $(SUPERPOWERS_REPO) .skill-cache/superpowers
@cd .skill-cache/superpowers && git fetch && git checkout $(SUPERPOWERS_VERSION)
@# Clean and copy superpowers skills
rm -rf skills/
cp -r .skill-cache/superpowers/skills skills/
@# Overlay June's custom skills (override)
cp -r june-skills/* skills/
@echo "Skills assembled: superpowers $(SUPERPOWERS_VERSION) + june overrides"

.PHONY: update-superpowers
update-superpowers:
cd .skill-cache/superpowers && git fetch origin main && git log --oneline HEAD..origin/main
@echo "Review changes above, then update SUPERPOWERS_VERSION and run 'make build-skills'"
71 changes: 70 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,76 @@ Names always include a unique 4-character suffix. The `--name` flag sets a prefi
| `--model` | Model to use (Codex: `o3`, `o4-mini`; Gemini: `gemini-2.5-pro`, etc.) |
| `--yolo` | Auto-approve all tool calls (Gemini only) |

Agent state is stored in `~/.june/june.db`.
## Persistent Tasks

Track tasks that survive context compaction:

```bash
# Create tasks
june task create "Implement auth feature" # Returns: t-a3f8b
june task create "Subtask 1" --parent t-a3f8b # Create child task

# View tasks
june task list # List root tasks
june task list t-a3f8b # Show task details + children

# Update tasks
june task update t-a3f8b --status in_progress # Change status
june task update t-a3f8b --note "WIP: auth flow" # Add note
june task update t-a3f8b --title "New title" # Rename

# Delete (cascades to children)
june task delete t-a3f8b
```

Tasks are scoped to the current git repo and branch.

All state is stored in `~/.june/june.db`.

## Claude Code Plugin

June is also a Claude Code plugin providing task-aware workflow skills.

### Installation

**Via marketplace (recommended):**
```
/plugin marketplace add sky-xo/june
/plugin install june@june
```

**For development:**
```bash
git clone https://github.com/sky-xo/june
cd june
claude --plugin-dir .
```

### Skills

June includes all superpowers skills plus customizations:

| Skill | Customization |
|-------|---------------|
| `june:writing-plans` | Fresheyes review integration, june task persistence |
| `june:executing-plans` | June task status tracking, resume after compaction |
| `june:subagent-driven-development` | Model selection (haiku/opus), conditional code quality review |
| `june:fresheyes` | Multi-agent code review (Claude/Codex/Gemini) |
| `june:review-pr-comments` | PR feedback workflow with approval gates |

### Building Skills

To rebuild after editing `june-skills/`:

```bash
make build-skills
```

To check for superpowers updates:

```bash
make update-superpowers
```

## How It Works

Expand Down
Loading