Files

7.6 KiB

name, description, disable-model-invocation, argument-hint
name description disable-model-invocation argument-hint
project-init Initialize a new project analysis. Creates directory structure, discovers relevant data sources (Zulip streams, git repos, meeting rooms), and writes datasources.md, background.md skeleton, and sync-state.md. true
project-name

Initialize Project Analysis

When to use: Starting analysis of a new project. This skill sets up the project structure and discovers data sources. It does NOT gather historical data — use /project-history for that after reviewing the datasources.

Step 1: Create Project Structure

mkdir -p projects/$0/timeline

Step 2: Discover and Document Data Sources

Investigate what data sources exist for this project. Use the connectors skill and company skill for reference.

Discovery process

  1. Zulip streams: Search DataIndex for threaded_conversation entities matching the project name. Note which stream IDs appear. Cross-reference with the company skill's Zulip channel list to identify primary vs. secondary streams.
  2. Git repositories: Ask the user for the repository URL, or search Gitea/GitHub if accessible.
  3. Meeting rooms: Search DataIndex for meeting entities matching the project name. Note which room_name values appear — these are the relevant meeting rooms.
  4. Search terms: Identify the project name, key technologies, and domain-specific terms that surface relevant data.
  5. Entity type priority: Determine which entity types are most relevant (typically threaded_conversation, meeting, and possibly email).

Write datasources.md

File: projects/$0/datasources.md

# $0 - Data Sources

## Zulip Streams

### PRIMARY Streams (Analyze All)
| Stream ID | Name | Topics | Priority | What to Look For |
|-----------|------|--------|----------|------------------|
| XXX | stream-name | N topics | CRITICAL | Development discussions |

### SECONDARY Streams (Selective)
| Stream ID | Name | Topics to Analyze | Context |
|-----------|------|-------------------|---------|
| YYY | integration-stream | specific-topic | Integration work |

### EXCLUDE
- stream-id-1: reason
- stream-id-2: reason

## Git Repository

**URL:** https://...

**Commands:**

git clone {url} ./tmp/$0-clone cd ./tmp/$0-clone git log --format="%H|%an|%ae|%ad|%s" --date=short > commits.csv git log --format="%an|%ae" | sort | uniq -c | sort -rn


## Meeting Rooms

### PRIMARY
- room-name: Project-specific discussions

### SECONDARY (Context Only)
- allhands: General updates

### EXCLUDE
- personal-rooms: Other projects

## Search Terms

### Primary
- project-name
- key-technology-1

### Technical
- architecture-term-1

### Deadline & Timeline Tracking
- deadline
- due date
- target date
- ETA
- "by when"
- "ship by"
- milestone
- launch date
- release date
- "when will"
- "when is"
- pushed back
- extended
- slipped
- delayed
- ahead of schedule
- behind schedule

## Entity Types Priority
1. threaded_conversation (Zulip)
2. meeting (recordings)
3. calendar_event (for deadline tracking)
4. [Exclude: email, document if not relevant]

## Deadline Discovery

During initial data gathering, search for deadline-related discussions:
- **Direct mentions**: "deadline", "due date", "target", "ETA", "launch date"
- **Timeline discussions**: When delivery dates are discussed or negotiated
- **Changes**: Deadline extensions, delays, accelerations
- **Commitments**: Statements like "we'll ship by X", "targeting Y for release"

Track these with dates, sources, and any context about rationale for changes.

Step 3: Create Project Dashboard (Living Document)

File: projects/$0/project.md

This is the entry point — the living document showing current status.

# $0 Project

**One-liner:** [Brief description]  
**Status:** [Active/On Hold/Deprecated]  
**Repository:** URL  
**Last Updated:** [Date]

---

## This Week's Focus

### Primary Objective
[What the team is working on right now]

### Active Work
- [Current task 1]
- [Current task 2]

### Blockers
- [Any blockers]

---

## Last Week's Focus

### Delivered
- ✅ [What was completed]

### Decisions Made
- [Key decisions from last week]

---

## Team

### Core Contributors (Active)
| Name | Focus | Availability |
|------|-------|--------------|
| [Name] | [Area] | Full-time/Part-time |

### Occasional Contributors
- [Name] - [Role]

---

## Milestones

### In Progress 🔄
| Milestone | Target | Business Objective |
|-----------|--------|-------------------|
| [Name] | [Date] | [WHY this matters] |

### Recently Completed ✅
| Milestone | Date | Business Objective |
|-----------|------|-------------------|
| [Name] | [Date] | [WHY this mattered] |

### Lost in Sight / Paused ⏸️
| Milestone | Status | Reason |
|-----------|--------|--------|
| [Name] | Paused | [Why paused] |

---

## Deadline History

Track when deadlines were discussed, committed to, or changed. This shows the evolution of project timeline expectations.

### Current Commitments
| Deliverable | Current Target | Source | Confidence |
|-------------|---------------|--------|------------|
| [Feature/Milestone] | [Date] | [Meeting/Thread] | [High/Medium/Low] |

### Timeline Evolution
| Date | Change | Previous | New | Reason | Source |
|------|--------|----------|-----|--------|--------|
| [Date] | Extended | [Old Date] | [New Date] | [Why changed] | [Thread/Meeting] |
| [Date] | Committed | - | [Date] | [Initial commitment context] | [Thread/Meeting] |

---

## Recent Decisions

### Week [N] (Current)
- **[Decision]** - [Context]

### Week [N-1]
- **[Decision]** - [Context]

---

## Quick Links

- [📊 Timeline](./timeline/index.md) - Week-by-week history
- [📋 Background](./background.md) - Project architecture and details
- [🔌 Data Sources](./datasources.md) - How to gather information
- [⚙️ Sync State](./sync-state.md) - Last sync information

---

*This is a living document. It reflects the current state and changes frequently.*

Step 4: Create Background Skeleton

File: projects/$0/background.md

Static/architecture information that rarely changes.

# $0 - Background

**Type:** [Web app/Mobile app/Library/Service]  
**Repository:** URL

## What is $0?

[Brief description of what the project does]

## Architecture

### Components
- Component 1 - Purpose
- Component 2 - Purpose

### Technology Stack
- Technology 1 - Usage
- Technology 2 - Usage

## Data Sources

See: [datasources.md](./datasources.md)

## Timeline Structure

Weekly timeline files are organized in `timeline/` directory.

## How This Project Is Updated

1. Gather Data: Query Zulip, Git, meetings
2. Update Timeline: Create week-by-week entries
3. Update Project Dashboard: Refresh [project.md](./project.md)

For current status, see: [project.md](./project.md)

Step 4: Create Timeline Index

File: projects/$0/timeline/index.md

# $0 Timeline Index

## Key Milestones

| Date | Milestone | Status |
|------|-----------|--------|
| [To be filled by project-history] | | |

## Summary by Quarter

[To be filled by project-history]

Step 5: Initialize Sync State

File: projects/$0/sync-state.md

# Sync State

status: initialized
created_at: [today's date]
last_sync_date: null
initial_history_from: null
initial_history_to: null

Done

After this skill completes, the user should:

  1. Review datasources.md — confirm the streams, repos, and meeting rooms are correct
  2. Edit background.md — fill in any known project details
  3. Run /project-history $0 [date-from] [date-to] — to build the initial historical timeline