gsd-ag 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.agent/skills/codebase-mapper/SKILL.md +226 -0
  2. package/.agent/skills/context-compressor/SKILL.md +201 -0
  3. package/.agent/skills/context-fetch/SKILL.md +184 -0
  4. package/.agent/skills/context-health-monitor/SKILL.md +105 -0
  5. package/.agent/skills/debugger/SKILL.md +273 -0
  6. package/.agent/skills/empirical-validation/SKILL.md +97 -0
  7. package/.agent/skills/executor/SKILL.md +465 -0
  8. package/.agent/skills/plan-checker/SKILL.md +283 -0
  9. package/.agent/skills/planner/SKILL.md +485 -0
  10. package/.agent/skills/token-budget/SKILL.md +166 -0
  11. package/.agent/skills/verifier/SKILL.md +421 -0
  12. package/.agent/workflows/add-phase.md +96 -0
  13. package/.agent/workflows/add-todo.md +69 -0
  14. package/.agent/workflows/audit-milestone.md +107 -0
  15. package/.agent/workflows/check-todos.md +80 -0
  16. package/.agent/workflows/complete-milestone.md +135 -0
  17. package/.agent/workflows/debug.md +235 -0
  18. package/.agent/workflows/discuss-phase.md +103 -0
  19. package/.agent/workflows/execute.md +325 -0
  20. package/.agent/workflows/health.md +122 -0
  21. package/.agent/workflows/help.md +96 -0
  22. package/.agent/workflows/insert-phase.md +109 -0
  23. package/.agent/workflows/install.md +152 -0
  24. package/.agent/workflows/list-phase-assumptions.md +82 -0
  25. package/.agent/workflows/map.md +394 -0
  26. package/.agent/workflows/new-milestone.md +126 -0
  27. package/.agent/workflows/new-project.md +368 -0
  28. package/.agent/workflows/pause.md +176 -0
  29. package/.agent/workflows/plan-milestone-gaps.md +116 -0
  30. package/.agent/workflows/plan.md +380 -0
  31. package/.agent/workflows/progress.md +90 -0
  32. package/.agent/workflows/quick.md +128 -0
  33. package/.agent/workflows/remove-phase.md +139 -0
  34. package/.agent/workflows/research-phase.md +160 -0
  35. package/.agent/workflows/resume.md +131 -0
  36. package/.agent/workflows/update.md +203 -0
  37. package/.agent/workflows/verify.md +263 -0
  38. package/.agent/workflows/web-search.md +121 -0
  39. package/.agent/workflows/whats-new.md +80 -0
  40. package/.gemini/GEMINI.md +67 -0
  41. package/.gsd/GSD-STYLE.md +272 -0
  42. package/.gsd/PROJECT_RULES.md +256 -0
  43. package/.gsd/adapters/CLAUDE.md +77 -0
  44. package/.gsd/adapters/GEMINI.md +92 -0
  45. package/.gsd/adapters/GPT_OSS.md +130 -0
  46. package/.gsd/docs/model-selection-playbook.md +128 -0
  47. package/.gsd/docs/runbook.md +296 -0
  48. package/.gsd/docs/token-optimization-guide.md +207 -0
  49. package/.gsd/examples/cross-platform.md +99 -0
  50. package/.gsd/examples/multi-wave-workflow.md +256 -0
  51. package/.gsd/examples/quick-reference.md +73 -0
  52. package/.gsd/examples/workflow-example.md +139 -0
  53. package/.gsd/model_capabilities.yaml +108 -0
  54. package/.gsd/templates/DEBUG.md +123 -0
  55. package/.gsd/templates/PLAN.md +90 -0
  56. package/.gsd/templates/RESEARCH.md +75 -0
  57. package/.gsd/templates/SUMMARY.md +103 -0
  58. package/.gsd/templates/UAT.md +168 -0
  59. package/.gsd/templates/VERIFICATION.md +70 -0
  60. package/.gsd/templates/architecture.md +67 -0
  61. package/.gsd/templates/context.md +91 -0
  62. package/.gsd/templates/decisions.md +37 -0
  63. package/.gsd/templates/discovery.md +122 -0
  64. package/.gsd/templates/journal.md +46 -0
  65. package/.gsd/templates/milestone.md +91 -0
  66. package/.gsd/templates/phase-summary.md +52 -0
  67. package/.gsd/templates/project.md +124 -0
  68. package/.gsd/templates/requirements.md +92 -0
  69. package/.gsd/templates/roadmap.md +103 -0
  70. package/.gsd/templates/spec.md +51 -0
  71. package/.gsd/templates/sprint.md +57 -0
  72. package/.gsd/templates/stack.md +62 -0
  73. package/.gsd/templates/state.md +92 -0
  74. package/.gsd/templates/state_snapshot.md +132 -0
  75. package/.gsd/templates/todo.md +32 -0
  76. package/.gsd/templates/token_report.md +79 -0
  77. package/.gsd/templates/user-setup.md +116 -0
  78. package/LICENSE +21 -0
  79. package/README.md +523 -0
  80. package/bin/init.js +117 -0
  81. package/package.json +35 -0
@@ -0,0 +1,52 @@
1
+ # Phase {N} Summary
2
+
3
+ > **Status**: Complete
4
+ > **Completed**: YYYY-MM-DD
5
+
6
+ ## Objective
7
+ {What this phase set out to accomplish.}
8
+
9
+ ## Deliverables
10
+
11
+ | Deliverable | Status | Notes |
12
+ |-------------|--------|-------|
13
+ | {Deliverable 1} | ✅ | {Any relevant notes} |
14
+ | {Deliverable 2} | ✅ | {Any relevant notes} |
15
+ | {Deliverable 3} | ✅ | {Any relevant notes} |
16
+
17
+ ## Tasks Completed
18
+
19
+ ### Plan {N}.1: {Plan Name}
20
+ - [x] {Task 1}
21
+ - [x] {Task 2}
22
+
23
+ ### Plan {N}.2: {Plan Name}
24
+ - [x] {Task 1}
25
+ - [x] {Task 2}
26
+
27
+ ## Verification Results
28
+
29
+ | Check | Result | Evidence |
30
+ |-------|--------|----------|
31
+ | {Verification 1} | ✅ Pass | {Command output / screenshot path} |
32
+ | {Verification 2} | ✅ Pass | {Command output / screenshot path} |
33
+
34
+ ## Commits
35
+
36
+ | Hash | Message |
37
+ |------|---------|
38
+ | `abc123` | feat(phase-N): {description} |
39
+ | `def456` | feat(phase-N): {description} |
40
+
41
+ ## Lessons Learned
42
+ - {What went well}
43
+ - {What could be improved}
44
+ - {Unexpected discoveries}
45
+
46
+ ## Next Steps
47
+ - {What the next phase should address}
48
+ - {Any deferred items}
49
+
50
+ ---
51
+
52
+ *Completed: YYYY-MM-DD*
@@ -0,0 +1,124 @@
1
+ # Project Template
2
+
3
+ Template for `.gsd/SPEC.md` (or PROJECT.md) — project specification.
4
+
5
+ ---
6
+
7
+ ## File Template
8
+
9
+ ```markdown
10
+ ---
11
+ status: DRAFT | FINALIZED
12
+ created: [ISO timestamp]
13
+ finalized: [ISO timestamp when status changed]
14
+ ---
15
+
16
+ # SPEC.md — Project Specification
17
+
18
+ ## Vision
19
+
20
+ {One paragraph describing what this project is and why it matters}
21
+
22
+ ---
23
+
24
+ ## Goals
25
+
26
+ 1. **{Primary Goal}**
27
+ {Brief description}
28
+
29
+ 2. **{Secondary Goal}**
30
+ {Brief description}
31
+
32
+ 3. **{Tertiary Goal}**
33
+ {Brief description}
34
+
35
+ ---
36
+
37
+ ## Non-Goals (Out of Scope)
38
+
39
+ Explicitly NOT part of this project:
40
+
41
+ - {Non-goal 1}
42
+ - {Non-goal 2}
43
+ - {Non-goal 3}
44
+
45
+ ---
46
+
47
+ ## Users
48
+
49
+ **Primary User:** {Who}
50
+ - {How they'll use it}
51
+ - {What they need}
52
+
53
+ **Secondary User:** {Who} (if applicable)
54
+ - {How they'll use it}
55
+
56
+ ---
57
+
58
+ ## Constraints
59
+
60
+ ### Technical
61
+ - {Technical constraint 1}
62
+ - {Technical constraint 2}
63
+
64
+ ### Timeline
65
+ - {Timeline constraint}
66
+
67
+ ### Other
68
+ - {Budget, resources, etc.}
69
+
70
+ ---
71
+
72
+ ## Success Criteria
73
+
74
+ How we know the project is successful:
75
+
76
+ - [ ] {Measurable outcome 1}
77
+ - [ ] {Measurable outcome 2}
78
+ - [ ] {Measurable outcome 3}
79
+
80
+ ---
81
+
82
+ ## Prior Art
83
+
84
+ Existing solutions or inspiration:
85
+
86
+ | Solution | Pros | Cons | Relevance |
87
+ |----------|------|------|-----------|
88
+ | {solution} | {pros} | {cons} | {how it relates} |
89
+
90
+ ---
91
+
92
+ ## Open Questions
93
+
94
+ Questions to resolve during planning:
95
+
96
+ - [ ] {Question 1}
97
+ - [ ] {Question 2}
98
+
99
+ ---
100
+
101
+ ## Decisions
102
+
103
+ Key decisions made during specification:
104
+
105
+ | Decision | Choice | Rationale | Date |
106
+ |----------|--------|-----------|------|
107
+ | {decision} | {choice} | {why} | {date} |
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Status Flow
113
+
114
+ 1. **DRAFT** — Being written, not ready for planning
115
+ 2. **FINALIZED** — Approved, planning can begin
116
+
117
+ **Planning Lock:** Cannot create plans until status is FINALIZED.
118
+
119
+ ## Guidelines
120
+
121
+ - Keep vision to one paragraph
122
+ - Goals should be achievable in one milestone
123
+ - Non-goals are as important as goals
124
+ - Success criteria must be measurable
@@ -0,0 +1,92 @@
1
+ # Requirements Template
2
+
3
+ Template for `.gsd/REQUIREMENTS.md` — formal requirements tracking with traceability.
4
+
5
+ ---
6
+
7
+ ## File Template
8
+
9
+ ```markdown
10
+ ---
11
+ milestone: {name}
12
+ updated: [ISO timestamp]
13
+ ---
14
+
15
+ # Requirements
16
+
17
+ ## Overview
18
+
19
+ Requirements derived from SPEC.md for traceability and coverage tracking.
20
+
21
+ ---
22
+
23
+ ## Functional Requirements
24
+
25
+ | ID | Requirement | Source | Phase | Status |
26
+ |----|-------------|--------|-------|--------|
27
+ | REQ-01 | {requirement description} | SPEC Goal 1 | 1 | Pending |
28
+ | REQ-02 | {requirement description} | SPEC Goal 1 | 1 | Pending |
29
+ | REQ-03 | {requirement description} | SPEC Goal 2 | 2 | Pending |
30
+ | REQ-04 | {requirement description} | SPEC Goal 2 | 2 | Pending |
31
+ | REQ-05 | {requirement description} | SPEC Goal 3 | 3 | Pending |
32
+
33
+ ---
34
+
35
+ ## Non-Functional Requirements
36
+
37
+ | ID | Requirement | Category | Phase | Status |
38
+ |----|-------------|----------|-------|--------|
39
+ | NFR-01 | Response time < 200ms | Performance | 4 | Pending |
40
+ | NFR-02 | Mobile responsive | UX | All | Pending |
41
+ | NFR-03 | 99% uptime | Reliability | 4 | Pending |
42
+
43
+ ---
44
+
45
+ ## Constraints
46
+
47
+ | ID | Constraint | Source | Impact |
48
+ |----|------------|--------|--------|
49
+ | CON-01 | {constraint} | SPEC | {affected areas} |
50
+ | CON-02 | {constraint} | Technical | {affected areas} |
51
+
52
+ ---
53
+
54
+ ## Traceability Matrix
55
+
56
+ | Requirement | Plans | Tests | Status |
57
+ |-------------|-------|-------|--------|
58
+ | REQ-01 | 1.1, 1.2 | TC-01 | — |
59
+ | REQ-02 | 1.2 | TC-02, TC-03 | — |
60
+ | REQ-03 | 2.1 | TC-04 | — |
61
+
62
+ ---
63
+
64
+ ## Status Definitions
65
+
66
+ | Status | Meaning |
67
+ |--------|---------|
68
+ | Pending | Not yet started |
69
+ | In Progress | Being implemented |
70
+ | Complete | Implemented and verified |
71
+ | Blocked | Cannot proceed |
72
+ | Deferred | Moved to later milestone |
73
+ ```
74
+
75
+ ---
76
+
77
+ ## Guidelines
78
+
79
+ **Requirement IDs:**
80
+ - REQ-XX: Functional requirements
81
+ - NFR-XX: Non-functional requirements
82
+ - CON-XX: Constraints
83
+
84
+ **Good requirements are:**
85
+ - Testable
86
+ - Specific
87
+ - Traceable to SPEC goals
88
+
89
+ **Update when:**
90
+ - Phase completes (mark requirements satisfied)
91
+ - Scope changes (add/defer requirements)
92
+ - Verification passes (update status)
@@ -0,0 +1,103 @@
1
+ # Roadmap Template
2
+
3
+ Template for `.gsd/ROADMAP.md` — phase structure and progress tracking.
4
+
5
+ ---
6
+
7
+ ## File Template
8
+
9
+ ```markdown
10
+ ---
11
+ milestone: {name}
12
+ version: {semantic version}
13
+ updated: [ISO timestamp]
14
+ ---
15
+
16
+ # Roadmap
17
+
18
+ > **Current Phase:** {N} - {name}
19
+ > **Status:** {planning | executing | verifying}
20
+
21
+ ## Must-Haves (from SPEC)
22
+
23
+ - [ ] {Must-have 1}
24
+ - [ ] {Must-have 2}
25
+ - [ ] {Must-have 3}
26
+
27
+ ---
28
+
29
+ ## Phases
30
+
31
+ ### Phase 1: {Foundation}
32
+ **Status:** ⬜ Not Started | 🔄 In Progress | ✅ Complete
33
+ **Objective:** {What this phase delivers}
34
+ **Requirements:** REQ-01, REQ-02
35
+
36
+ **Plans:**
37
+ - [ ] Plan 1.1: {name}
38
+ - [ ] Plan 1.2: {name}
39
+
40
+ ---
41
+
42
+ ### Phase 2: {Core Feature}
43
+ **Status:** ⬜ Not Started
44
+ **Objective:** {What this phase delivers}
45
+ **Depends on:** Phase 1
46
+
47
+ **Plans:**
48
+ - [ ] Plan 2.1: {name}
49
+ - [ ] Plan 2.2: {name}
50
+
51
+ ---
52
+
53
+ ### Phase 3: {Integration}
54
+ **Status:** ⬜ Not Started
55
+ **Objective:** {What this phase delivers}
56
+ **Depends on:** Phase 2
57
+
58
+ ---
59
+
60
+ ### Phase 4: {Polish/Launch}
61
+ **Status:** ⬜ Not Started
62
+ **Objective:** {Final touches and deployment}
63
+ **Depends on:** Phase 3
64
+
65
+ ---
66
+
67
+ ## Progress Summary
68
+
69
+ | Phase | Status | Plans | Complete |
70
+ |-------|--------|-------|----------|
71
+ | 1 | ⬜ | 0/2 | — |
72
+ | 2 | ⬜ | 0/2 | — |
73
+ | 3 | ⬜ | 0/1 | — |
74
+ | 4 | ⬜ | 0/1 | — |
75
+
76
+ ---
77
+
78
+ ## Timeline
79
+
80
+ | Phase | Started | Completed | Duration |
81
+ |-------|---------|-----------|----------|
82
+ | 1 | — | — | — |
83
+ | 2 | — | — | — |
84
+ | 3 | — | — | — |
85
+ | 4 | — | — | — |
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Status Icons
91
+
92
+ - ⬜ Not Started
93
+ - 🔄 In Progress
94
+ - ✅ Complete
95
+ - ⏸️ Paused
96
+ - ❌ Blocked
97
+
98
+ ## Guidelines
99
+
100
+ - 3-5 phases per milestone
101
+ - Each phase has clear deliverable
102
+ - Dependencies flow forward
103
+ - Update status as work progresses
@@ -0,0 +1,51 @@
1
+ # SPEC.md — Project Specification
2
+
3
+ > **Status**: `DRAFT` | `FINALIZED`
4
+ >
5
+ > ⚠️ **Planning Lock**: No code may be written until this spec is marked `FINALIZED`.
6
+
7
+ ## Vision
8
+ {One paragraph describing what this project is and why it exists.}
9
+
10
+ ## Goals
11
+ 1. **{Goal 1}** — {Brief description}
12
+ 2. **{Goal 2}** — {Brief description}
13
+ 3. **{Goal 3}** — {Brief description}
14
+
15
+ ## Non-Goals (Out of Scope)
16
+ - {What this project explicitly will NOT do}
17
+ - {Features that are intentionally excluded}
18
+ - {Scope boundaries}
19
+
20
+ ## Constraints
21
+ - {Technical constraint 1}
22
+ - {Business constraint 1}
23
+ - {Timeline constraint 1}
24
+
25
+ ## Success Criteria
26
+ - [ ] {Measurable outcome 1}
27
+ - [ ] {Measurable outcome 2}
28
+ - [ ] {Measurable outcome 3}
29
+ - [ ] {Measurable outcome 4}
30
+
31
+ ## User Stories (Optional)
32
+
33
+ ### As a {user type}
34
+ - I want to {action}
35
+ - So that {benefit}
36
+
37
+ ### As a {user type}
38
+ - I want to {action}
39
+ - So that {benefit}
40
+
41
+ ## Technical Requirements (Optional)
42
+
43
+ | Requirement | Priority | Notes |
44
+ |-------------|----------|-------|
45
+ | {Requirement 1} | Must-have | {Details} |
46
+ | {Requirement 2} | Should-have | {Details} |
47
+ | {Requirement 3} | Nice-to-have | {Details} |
48
+
49
+ ---
50
+
51
+ *Last updated: <!-- date -->*
@@ -0,0 +1,57 @@
1
+ # Sprint {N} — {Sprint Name}
2
+
3
+ > **Duration**: YYYY-MM-DD to YYYY-MM-DD
4
+ > **Status**: In Progress | Complete
5
+
6
+ ## Goal
7
+ {One sentence describing what this sprint aims to achieve.}
8
+
9
+ ## Scope
10
+
11
+ ### Included
12
+ - {Feature/task 1}
13
+ - {Feature/task 2}
14
+ - {Feature/task 3}
15
+
16
+ ### Explicitly Excluded
17
+ - {Out of scope item 1}
18
+ - {Out of scope item 2}
19
+
20
+ ## Tasks
21
+
22
+ | Task | Assignee | Status | Est. Hours |
23
+ |------|----------|--------|------------|
24
+ | {Task 1} | {who} | ⬜ Todo | {hours} |
25
+ | {Task 2} | {who} | 🔄 In Progress | {hours} |
26
+ | {Task 3} | {who} | ✅ Done | {hours} |
27
+
28
+ ## Daily Log
29
+
30
+ ### Day 1 (YYYY-MM-DD)
31
+ - {What was accomplished}
32
+ - {Blockers encountered}
33
+
34
+ ### Day 2 (YYYY-MM-DD)
35
+ - {What was accomplished}
36
+ - {Blockers encountered}
37
+
38
+ ## Risks & Blockers
39
+
40
+ | Risk | Impact | Mitigation |
41
+ |------|--------|------------|
42
+ | {Risk 1} | {High/Med/Low} | {What can be done} |
43
+
44
+ ## Retrospective (end of sprint)
45
+
46
+ ### What Went Well
47
+ - {Positive outcome 1}
48
+
49
+ ### What Could Improve
50
+ - {Area for improvement 1}
51
+
52
+ ### Action Items
53
+ - [ ] {Action to take in next sprint}
54
+
55
+ ---
56
+
57
+ *Last updated: <!-- date -->*
@@ -0,0 +1,62 @@
1
+ # Technology Stack
2
+
3
+ > Auto-generated by /map on <!-- date -->
4
+
5
+ ## Runtime
6
+
7
+ | Technology | Version | Purpose |
8
+ |------------|---------|---------|
9
+ | {Language} | {version} | {purpose} |
10
+ | {Framework} | {version} | {purpose} |
11
+ | {Database} | {version} | {purpose} |
12
+
13
+ ## Core Technologies
14
+
15
+ ### {Category 1}
16
+ | Feature | System | Purpose |
17
+ |---------|--------|---------|
18
+ | {Feature} | {System/Location} | {Purpose} |
19
+
20
+ ### {Category 2}
21
+ | Directory | Files | Purpose |
22
+ |-----------|-------|---------|
23
+ | `{path}` | {count} | {purpose} |
24
+
25
+ ## Dependencies
26
+
27
+ ### External Dependencies
28
+
29
+ | Package | Version | Purpose |
30
+ |---------|---------|---------|
31
+ | {package} | {version} | {purpose} |
32
+
33
+ ### Internal Dependencies
34
+
35
+ | Component | Depends On | Purpose |
36
+ |-----------|------------|---------|
37
+ | {Component A} | {Component B} | {Why dependency exists} |
38
+
39
+ ## Infrastructure
40
+
41
+ | Service | Provider | Purpose |
42
+ |---------|----------|---------|
43
+ | {Service} | {Provider} | {Purpose} |
44
+
45
+ **Repository:** {repository URL}
46
+
47
+ ## Configuration
48
+
49
+ | Variable | Purpose | Location |
50
+ |----------|---------|----------|
51
+ | {VAR_NAME} | {What it controls} | {Where it's set} |
52
+
53
+ ## File Size Inventory
54
+
55
+ | Category | Count | Total Lines (approx) |
56
+ |----------|-------|---------------------|
57
+ | {Category} | {count} | {lines} |
58
+ | **Total** | **{total}** | **{total_lines}** |
59
+
60
+ ---
61
+
62
+ *Last updated: <!-- date -->*
@@ -0,0 +1,92 @@
1
+ # State Template
2
+
3
+ Template for `.gsd/STATE.md` — project memory across sessions.
4
+
5
+ ---
6
+
7
+ ## File Template
8
+
9
+ ```markdown
10
+ ---
11
+ updated: [ISO timestamp]
12
+ ---
13
+
14
+ # Project State
15
+
16
+ ## Current Position
17
+
18
+ **Milestone:** {name}
19
+ **Phase:** {N} - {name}
20
+ **Status:** {planning | executing | verifying | blocked}
21
+ **Plan:** {current plan if executing}
22
+
23
+ ## Last Action
24
+
25
+ {What was just completed}
26
+
27
+ ## Next Steps
28
+
29
+ 1. {Immediate next action}
30
+ 2. {Following action}
31
+ 3. {Third action if known}
32
+
33
+ ## Active Decisions
34
+
35
+ Decisions made that affect current work:
36
+
37
+ | Decision | Choice | Made | Affects |
38
+ |----------|--------|------|---------|
39
+ | {what} | {choice} | {date} | {phases/plans} |
40
+
41
+ ## Blockers
42
+
43
+ {None if clear}
44
+
45
+ - [ ] {Blocker 1}: {resolution approach}
46
+ - [ ] {Blocker 2}: {resolution approach}
47
+
48
+ ## Concerns
49
+
50
+ Things to watch but not blocking:
51
+
52
+ - {Concern 1}
53
+ - {Concern 2}
54
+
55
+ ## Session Context
56
+
57
+ {Any context the next session needs to know}
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Update Rules
63
+
64
+ **Update STATE.md after:**
65
+ - Every completed task
66
+ - Every decision made
67
+ - Any blocker identified
68
+ - Session end/pause
69
+
70
+ **What to update:**
71
+ - `updated` timestamp
72
+ - Current Position
73
+ - Last Action
74
+ - Next Steps
75
+
76
+ **Keep it lean:**
77
+ - STATE.md is read frequently
78
+ - Only current context, not history
79
+ - History goes in JOURNAL.md
80
+
81
+ ---
82
+
83
+ ## Resume Protocol
84
+
85
+ When starting a new session:
86
+
87
+ 1. Read STATE.md first
88
+ 2. Understand current position
89
+ 3. Check blockers/concerns
90
+ 4. Continue from Next Steps
91
+
92
+ The STATE.md is the "save game" for the project.