Skip to content

Commit 9622930

Browse files
patel-lyzrclaude
andcommitted
feat: add gitcron as native built-in tool and gitcron skills
- New built-in tool: gitcron — agents can schedule jobs, manage tasks, set reminders directly through the tool interface - Skills: scheduling, task-management, reminders — teach agents when and how to use gitcron capabilities - Registered in agent.yaml and createBuiltinTools() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 25ff59a commit 9622930

File tree

6 files changed

+446
-1
lines changed

6 files changed

+446
-1
lines changed

agent.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,10 @@ tools:
1010
- read
1111
- write
1212
- memory
13+
- gitcron
14+
skills:
15+
- scheduling
16+
- task-management
17+
- reminders
1318
runtime:
1419
max_turns: 50

skills/reminders/SKILL.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
name: reminders
3+
description: Set recurring or one-shot reminders that create GitHub issues on schedule — for compliance deadlines, reviews, follow-ups, and check-ins
4+
license: MIT
5+
allowed-tools: gitcron cli read write
6+
metadata:
7+
author: open-gitagent
8+
version: "1.0.0"
9+
category: automation
10+
---
11+
12+
# Reminders
13+
14+
## Instructions
15+
16+
You can create reminders that automatically create GitHub issues on a schedule or at a specific time. Reminders are defined in `cron.yaml` and compiled to GitHub Actions workflows.
17+
18+
### Reminder types
19+
20+
**Recurring** — Fires repeatedly on a cron schedule:
21+
```yaml
22+
- name: weekly-standup
23+
type: recurring
24+
cron: "0 9 * * 1"
25+
action:
26+
type: issue
27+
title: "Weekly Standup Notes"
28+
body: "Time for weekly standup. Update your status."
29+
labels: [meeting, reminder]
30+
assignees: [team-lead]
31+
```
32+
33+
**One-shot** — Fires once at a specific time:
34+
```yaml
35+
- name: deadline-reminder
36+
type: one-shot
37+
at: "2026-04-01T09:00:00Z"
38+
action:
39+
type: issue
40+
title: "Q1 Deadline: Final Review"
41+
```
42+
43+
### When to create reminders
44+
45+
- Compliance deadlines (quarterly reviews, annual audits)
46+
- Follow-ups after deployments or incidents
47+
- Recurring meetings or check-ins
48+
- One-time deadlines or milestones
49+
- Periodic health checks or reviews
50+
51+
### Common cron patterns for reminders
52+
53+
- `0 9 * * 1` — Every Monday at 9 AM (weekly standup)
54+
- `0 9 1 * *` — First of month at 9 AM (monthly review)
55+
- `0 9 1 */3 *` — Quarterly (every 3 months on the 1st)
56+
- `0 9 1 1 *` — Annual (January 1st)
57+
- `0 9 * * 1-5` — Every weekday at 9 AM
58+
59+
### Managing reminders
60+
61+
1. `remind-create` — Add a new recurring reminder
62+
2. `remind-list` — See all reminders
63+
3. `remind-fire` — Manually trigger a reminder now
64+
4. `remind-pause` / `remind-resume` — Temporarily disable/enable
65+
5. After changes, run `gitcron generate` to update workflows
66+
67+
### Best practices
68+
69+
- Use descriptive names in kebab-case: `quarterly-model-review`, not `qmr`
70+
- Include actionable body text explaining what to do
71+
- Add appropriate labels for filtering
72+
- Assign to the responsible team/person
73+
- For compliance reminders, reference the regulation (e.g., "per SR 11-7")
74+
75+
## Output Format
76+
77+
When creating a reminder, confirm:
78+
1. Reminder name and schedule (human-readable)
79+
2. What issue will be created (title, labels, assignees)
80+
3. Next steps: `gitcron generate` and push

skills/scheduling/SKILL.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
---
2+
name: scheduling
3+
description: Create and manage scheduled jobs that run as GitHub Actions — schedule agents, commands, code reviews, linting, and any recurring automation
4+
license: MIT
5+
allowed-tools: gitcron cli read write
6+
metadata:
7+
author: open-gitagent
8+
version: "1.0.0"
9+
category: automation
10+
---
11+
12+
# Scheduling
13+
14+
## Instructions
15+
16+
You can create and manage scheduled jobs that run automatically as GitHub Actions workflows. Each schedule is defined in `cron.yaml` and compiled to `.github/workflows/` files.
17+
18+
### When to create a schedule
19+
20+
Create a schedule when the user wants something to run:
21+
- On a recurring basis (nightly, weekly, monthly)
22+
- Automatically without human intervention
23+
- As a GitHub Actions workflow
24+
25+
### Schedule types
26+
27+
**Agent schedules** — Run a gitagent/gitclaw AI agent:
28+
```yaml
29+
- name: nightly-review
30+
cron: "0 2 * * *"
31+
agent: code-reviewer
32+
adapter: claude # or: openai, gitclaw, system-prompt
33+
prompt: "Review all open PRs"
34+
branch:
35+
strategy: pr # creates a PR with the agent's changes
36+
```
37+
38+
**Command schedules** — Run any shell command:
39+
```yaml
40+
- name: weekly-lint
41+
cron: "0 6 * * 1"
42+
command: "npm run lint -- --fix"
43+
branch:
44+
strategy: commit # commits directly to base branch
45+
```
46+
47+
### Cron expression reference
48+
49+
```
50+
┌───────────── minute (0-59)
51+
│ ┌─────────── hour (0-23)
52+
│ │ ┌───────── day of month (1-31)
53+
│ │ │ ┌─────── month (1-12)
54+
│ │ │ │ ┌───── day of week (0-7, Sun=0 or 7)
55+
│ │ │ │ │
56+
* * * * *
57+
```
58+
59+
Common patterns:
60+
- `0 2 * * *` — Daily at 2 AM
61+
- `0 9 * * 1` — Every Monday at 9 AM
62+
- `0 0 1 * *` — First of every month at midnight
63+
- `*/15 * * * *` — Every 15 minutes
64+
- `0 9 1 */3 *` — Quarterly (first of every 3rd month)
65+
66+
### Branch strategies
67+
68+
| Strategy | Use when |
69+
|----------|----------|
70+
| `pr` | Agent makes code changes that need review |
71+
| `create` | Push a branch without opening a PR |
72+
| `commit` | Small, safe changes (lint fixes, formatting) |
73+
| `none` | Read-only tasks (audits, reports, scans) |
74+
75+
### Workflow
76+
77+
1. Use `gitcron` tool with `schedule-list` to see existing schedules
78+
2. Use `gitcron` tool with appropriate command to create/modify schedules
79+
3. Edit `cron.yaml` directly for complex configurations
80+
4. Run `gitcron generate` to compile to GitHub Actions workflows
81+
5. The workflows will run automatically after push to the repository
82+
83+
### Adapter selection
84+
85+
- **claude** — Best for code changes, complex reasoning. Uses Claude Code via gitagent.
86+
- **gitclaw** — Full agent runtime with tools, hooks, audit logging, compliance. Best for enterprise use.
87+
- **openai** — OpenAI API integration via gitagent.
88+
- **system-prompt** — Generic LLM export.
89+
90+
## Output Format
91+
92+
When creating a schedule, confirm:
93+
1. Schedule name and cron expression (human-readable)
94+
2. What it does (agent/command)
95+
3. Branch strategy chosen and why
96+
4. Next steps: `gitcron generate` and push

skills/task-management/SKILL.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
name: task-management
3+
description: Git-native task tracking with state machine — create, assign, transition, and track tasks where every mutation is a git commit
4+
license: MIT
5+
allowed-tools: gitcron cli read write
6+
metadata:
7+
author: open-gitagent
8+
version: "1.0.0"
9+
category: project-management
10+
---
11+
12+
# Task Management
13+
14+
## Instructions
15+
16+
You can create and manage tasks tracked as YAML files in `.gitcron/tasks/`. Every task mutation (create, state change, reassign) creates a git commit, giving you a full audit trail.
17+
18+
### When to use tasks
19+
20+
- Track work items discovered during agent execution
21+
- Break down complex requests into trackable units
22+
- Assign work to team members or other agents
23+
- Track progress through defined states
24+
25+
### Task states
26+
27+
Default state machine:
28+
```
29+
pending → in_progress → review → done
30+
↓ ↓ ↓
31+
cancelled cancelled (back to in_progress)
32+
```
33+
34+
Valid transitions:
35+
- `pending``in_progress`, `cancelled`
36+
- `in_progress``review`, `done`, `cancelled`
37+
- `review``in_progress`, `done`
38+
- `done` → (terminal)
39+
- `cancelled` → (terminal)
40+
41+
### Creating tasks
42+
43+
Use the `gitcron` tool with `task-create`:
44+
- Always provide a clear, actionable title
45+
- Set priority based on urgency: `high`, `medium`, `low`
46+
- Assign if the responsible person/agent is known
47+
48+
### Updating tasks
49+
50+
Use `task-update` with the task ID (e.g., TASK-001):
51+
- Only transition to valid next states
52+
- The tool will reject invalid transitions
53+
54+
### Workflow
55+
56+
1. `task-list` to see current tasks and their states
57+
2. `task-create` for new work items
58+
3. `task-update` to progress tasks through states
59+
4. `task-show` for full details including history
60+
61+
### Best practices
62+
63+
- One task per discrete work item
64+
- Use descriptive titles that explain the outcome, not the process
65+
- Set priority based on impact: `high` = blocking/urgent, `medium` = normal, `low` = nice-to-have
66+
- Move tasks to `review` when they need human verification
67+
- Move to `done` only when fully complete
68+
69+
## Output Format
70+
71+
When managing tasks, report:
72+
1. Action taken (created/updated/listed)
73+
2. Task ID and current state
74+
3. What changed and why

0 commit comments

Comments
 (0)