@aethrekh/pi-cs 0.1.0 → 0.1.2
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.
- package/CHANGELOG.md +42 -0
- package/README.md +52 -35
- package/package.json +1 -1
- package/pi-cs.meta.json +2 -2
- package/pi-package.yaml +5 -7
- package/skills/research/SKILL.md +58 -1
- package/skills/semester/SKILL.md +129 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## 0.1.2 (2026-06-02)
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `/semester` skill with `--init`, `--update`, and `--status` modes — replaces the dead `semester-init` template that was never reachable as a slash command; `--init` scaffolds a new `SEMESTER.md`, `--update` edits fields without starting over, `--status` shows the full detected context
|
|
14
|
+
- Full CS paper structure (9-section scaffold), IEEE LaTeX starter, and writing tips embedded in `/research --mode=review`
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- npm package name renamed to `@aethrekh/pi-cs`; install with `pi install npm:@aethrekh/pi-cs`
|
|
18
|
+
- `publishConfig.directory` set to `dist/pack` so `pnpm publish` uses the compiled, Pi-ready layout
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- `project-init` and `research-paper` templates removed from `pi-package.yaml`; `project-init` was redundant with content already inline in the `/project` skill, and `research-paper` content is now live inside the `/research` skill where the LLM can actually use it
|
|
22
|
+
- README configuration section corrected from YAML to JSON format
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 0.1.1 (2026-06-02)
|
|
27
|
+
|
|
28
|
+
### ### Added
|
|
29
|
+
|
|
30
|
+
* add background extensions ([2b8c432](https://github.com/AshishBagdane/pi-cs/commit/2b8c432c729b14a630d98aa951612917712695d9))
|
|
31
|
+
* add configuration system (schema + defaults) ([3a78bb4](https://github.com/AshishBagdane/pi-cs/commit/3a78bb4299d730ecc06e45675cc75dcb29a11121))
|
|
32
|
+
* add package entry point with lifecycle hooks ([c0be9cc](https://github.com/AshishBagdane/pi-cs/commit/c0be9cc0e3bbab96f4dbe7d2d0d1eec572ad3d67))
|
|
33
|
+
* add Pi package manifest and system prompt ([4911a60](https://github.com/AshishBagdane/pi-cs/commit/4911a60fc0a813d3d8e9040b1f334d3720e7208d))
|
|
34
|
+
* add scaffolding templates ([e495d01](https://github.com/AshishBagdane/pi-cs/commit/e495d01d71bd9f231ef32d423576f87d247fa071))
|
|
35
|
+
* add skill prompt definitions ([e0fb541](https://github.com/AshishBagdane/pi-cs/commit/e0fb54138362fab53de93909c4008fef500af62a))
|
|
36
|
+
* add validate and pack scripts ([8e4841b](https://github.com/AshishBagdane/pi-cs/commit/8e4841bfc5bcb32acdc55086879c1b671d10e47d))
|
|
37
|
+
|
|
38
|
+
### ### Fixed
|
|
39
|
+
|
|
40
|
+
* repair pnpm-workspace.yaml to unblock CI ([78915c5](https://github.com/AshishBagdane/pi-cs/commit/78915c50e3de5bc1335e4405cd10ac18dd9c5cf4))
|
|
41
|
+
|
|
42
|
+
### ### Changed
|
|
43
|
+
|
|
44
|
+
* add comprehensive student usage guide ([0d2f769](https://github.com/AshishBagdane/pi-cs/commit/0d2f769a80d672062644fc01df275d95e8f3e456))
|
|
45
|
+
* add CONTRIBUTING.md with project-specific contribution guide ([013d69a](https://github.com/AshishBagdane/pi-cs/commit/013d69a5d08e1bb0b47270922fb381111c31a201))
|
|
46
|
+
* add README, changelog, and Claude Code guidance ([03f9108](https://github.com/AshishBagdane/pi-cs/commit/03f91082d92f9f81e93971787a6f98841061a1ad))
|
|
47
|
+
* add SECURITY.md with project-specific vulnerability policy ([fd8a115](https://github.com/AshishBagdane/pi-cs/commit/fd8a115da32b421a96a0362e3ad9aefa0e8f3a94))
|
|
48
|
+
* expand CLAUDE.md with missing commands and non-obvious patterns ([50b3bdb](https://github.com/AshishBagdane/pi-cs/commit/50b3bdb4962da8799eb04c31f3aa418048036306))
|
|
49
|
+
* fix stale project structure and broken link in README ([c0f41b4](https://github.com/AshishBagdane/pi-cs/commit/c0f41b40e53c125bac0549cb9e802c270eab6b53))
|
|
50
|
+
* replace fish emoji with Pisces logo images ([90bdfdd](https://github.com/AshishBagdane/pi-cs/commit/90bdfdd466b43ec6f762ab1b3e54c302d0077507))
|
|
51
|
+
|
|
10
52
|
## [Unreleased]
|
|
11
53
|
|
|
12
54
|
### Planned
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# <img src="public/pisces-logo-32.png" height="32" align="center" alt="Pisces"> pi-cs (Pisces)
|
|
2
2
|
### The CS Student Edition for Pi Coding Agent
|
|
3
3
|
|
|
4
4
|
> *Your intelligent, adaptive AI co-pilot that swims deep into every aspect of your Computer Science degree.*
|
|
@@ -15,6 +15,7 @@ It covers every dimension of a CS degree:
|
|
|
15
15
|
|
|
16
16
|
| Need | Command | What it does |
|
|
17
17
|
|---|---|---|
|
|
18
|
+
| Set up semester context | `/semester` | Init, update, or inspect your `SEMESTER.md` context |
|
|
18
19
|
| Stuck on an assignment | `/homework` | Hints, pseudocode, guided walkthrough — no cheating |
|
|
19
20
|
| Starting a new project | `/project` | Requirements → architecture → scaffolded codebase |
|
|
20
21
|
| Code review before submitting | `/review` | Strict TA-level review with severity tiers |
|
|
@@ -29,13 +30,13 @@ It covers every dimension of a CS degree:
|
|
|
29
30
|
|
|
30
31
|
```bash
|
|
31
32
|
# Install pi-cs
|
|
32
|
-
pi install npm
|
|
33
|
+
pi install npm:@aethrekh/pi-cs
|
|
33
34
|
|
|
34
35
|
# Navigate to your university folder
|
|
35
36
|
cd ~/university/fall2025
|
|
36
37
|
|
|
37
38
|
# Initialize your semester context
|
|
38
|
-
/semester
|
|
39
|
+
/semester
|
|
39
40
|
|
|
40
41
|
# Start working
|
|
41
42
|
/homework
|
|
@@ -71,6 +72,16 @@ Pisces auto-detects this file at startup and greets you with relevant context:
|
|
|
71
72
|
|
|
72
73
|
## Skills Reference
|
|
73
74
|
|
|
75
|
+
### `/semester`
|
|
76
|
+
Semester context management. Three modes:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
/semester # status if SEMESTER.md exists, prompts --init if not
|
|
80
|
+
/semester --init # scaffold a new SEMESTER.md interactively
|
|
81
|
+
/semester --update # update week, courses, active project, or other fields
|
|
82
|
+
/semester --status # show everything Pisces currently detects
|
|
83
|
+
```
|
|
84
|
+
|
|
74
85
|
### `/homework`
|
|
75
86
|
Guided learning mode. Pisces uses the Socratic method — hints, pseudocode, and guided questions. **Never produces complete submittable solutions for graded work.**
|
|
76
87
|
|
|
@@ -152,21 +163,28 @@ When Pisces detects a potential integrity issue, it redirects to guided learning
|
|
|
152
163
|
|
|
153
164
|
## Configuration
|
|
154
165
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
pi-cs
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
Create a `.pi-cs.json` file to override defaults. Pisces checks these locations in order, first match wins:
|
|
167
|
+
|
|
168
|
+
1. `.pi-cs.json` in the current working directory (project-level)
|
|
169
|
+
2. `~/.pi/pi-cs.json` (user-level)
|
|
170
|
+
3. `~/.config/pi-cs/config.json`
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"student": {
|
|
175
|
+
"name": "Alex",
|
|
176
|
+
"year_of_study": 2,
|
|
177
|
+
"primary_language": "python"
|
|
178
|
+
},
|
|
179
|
+
"explanations": {
|
|
180
|
+
"default_depth": "intermediate",
|
|
181
|
+
"prefer_visuals": true
|
|
182
|
+
},
|
|
183
|
+
"productivity": {
|
|
184
|
+
"burnout_nudges": true,
|
|
185
|
+
"session_warning_minutes": 180
|
|
186
|
+
}
|
|
187
|
+
}
|
|
170
188
|
```
|
|
171
189
|
|
|
172
190
|
See [`config/schema.json`](config/schema.json) for the full configuration reference.
|
|
@@ -178,7 +196,7 @@ See [`config/schema.json`](config/schema.json) for the full configuration refere
|
|
|
178
196
|
**Requirements:** Pi >= 1.0.0, Node.js >= 18
|
|
179
197
|
|
|
180
198
|
```bash
|
|
181
|
-
pi install npm
|
|
199
|
+
pi install npm:@aethrekh/pi-cs
|
|
182
200
|
```
|
|
183
201
|
|
|
184
202
|
That's it. Pisces activates automatically in every Pi session.
|
|
@@ -193,22 +211,21 @@ pi-cs/
|
|
|
193
211
|
├── pi-package.yaml # Package manifest
|
|
194
212
|
├── src/
|
|
195
213
|
│ ├── skills/
|
|
196
|
-
│ │ ├──
|
|
197
|
-
│ │ ├──
|
|
198
|
-
│ │ ├──
|
|
199
|
-
│ │ ├──
|
|
200
|
-
│ │ ├──
|
|
201
|
-
│ │ ├──
|
|
202
|
-
│ │
|
|
214
|
+
│ │ ├── semester/SKILL.md # /semester skill
|
|
215
|
+
│ │ ├── homework/SKILL.md # /homework skill
|
|
216
|
+
│ │ ├── project/SKILL.md # /project skill
|
|
217
|
+
│ │ ├── review/SKILL.md # /review skill
|
|
218
|
+
│ │ ├── explain/SKILL.md # /explain skill
|
|
219
|
+
│ │ ├── leetcode/SKILL.md # /leetcode skill
|
|
220
|
+
│ │ ├── exam/SKILL.md # /exam skill
|
|
221
|
+
│ │ └── research/SKILL.md # /research skill
|
|
203
222
|
│ ├── extensions/
|
|
204
|
-
│ │ ├── semester-detector.ts
|
|
205
|
-
│ │ ├── folder-detector.ts
|
|
206
|
-
│ │ ├── integrity-guard.ts
|
|
207
|
-
│ │ └── progress-tracker.ts
|
|
223
|
+
│ │ ├── semester-detector.ts # Auto-loads SEMESTER.md
|
|
224
|
+
│ │ ├── folder-detector.ts # Detects CS folder structures
|
|
225
|
+
│ │ ├── integrity-guard.ts # Academic integrity monitoring
|
|
226
|
+
│ │ └── progress-tracker.ts # Weekly stats & burnout nudges
|
|
208
227
|
│ └── templates/
|
|
209
|
-
│
|
|
210
|
-
│ ├── project-init.md # CS project bootstrap template
|
|
211
|
-
│ └── research-paper.md # Academic paper structure template
|
|
228
|
+
│ └── semester-init.md # SEMESTER.md raw template
|
|
212
229
|
├── config/
|
|
213
230
|
│ ├── schema.json # Config schema
|
|
214
231
|
│ └── defaults.json # Default values
|
|
@@ -221,7 +238,7 @@ pi-cs/
|
|
|
221
238
|
|
|
222
239
|
## Roadmap
|
|
223
240
|
|
|
224
|
-
- [x]
|
|
241
|
+
- [x] 8 core skills
|
|
225
242
|
- [x] 4 background extensions
|
|
226
243
|
- [x] Semester context system
|
|
227
244
|
- [x] Academic integrity guard
|
|
@@ -247,4 +264,4 @@ MIT — see [LICENSE](LICENSE)
|
|
|
247
264
|
|
|
248
265
|
---
|
|
249
266
|
|
|
250
|
-
*Made for CS students, by CS students.
|
|
267
|
+
*Made for CS students, by CS students. <img src="public/pisces-logo-32.png" height="18" align="center" alt="Pisces">*
|
package/package.json
CHANGED
package/pi-cs.meta.json
CHANGED
package/pi-package.yaml
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
name: pi-cs
|
|
2
|
-
version: 0.1.
|
|
2
|
+
version: 0.1.2
|
|
3
3
|
display_name: "pi-cs (Pisces)"
|
|
4
4
|
description: "The CS Student Edition for Pi — Your personal AI teaching assistant for Computer Science, from homework to thesis."
|
|
5
|
+
icon: public/pisces-logo-512.png
|
|
5
6
|
author: ""
|
|
6
7
|
license: MIT
|
|
7
8
|
pi_version: ">=1.0.0"
|
|
@@ -32,6 +33,9 @@ skills:
|
|
|
32
33
|
- name: research
|
|
33
34
|
path: skills/research/SKILL.md
|
|
34
35
|
description: "Paper summarization, arXiv search, and literature review assistance"
|
|
36
|
+
- name: semester
|
|
37
|
+
path: skills/semester/SKILL.md
|
|
38
|
+
description: "Manage semester context: scaffold a new SEMESTER.md (--init), update fields (--update), or inspect what Pisces detects (--status)"
|
|
35
39
|
|
|
36
40
|
# Extensions that run automatically in the background
|
|
37
41
|
extensions:
|
|
@@ -63,12 +67,6 @@ templates:
|
|
|
63
67
|
- name: semester-init
|
|
64
68
|
path: templates/semester-init.md
|
|
65
69
|
description: "Initialize a new semester workspace with SEMESTER.md and folder structure"
|
|
66
|
-
- name: project-init
|
|
67
|
-
path: templates/project-init.md
|
|
68
|
-
description: "Bootstrap a new CS project with README, structure, and CI"
|
|
69
|
-
- name: research-paper
|
|
70
|
-
path: templates/research-paper.md
|
|
71
|
-
description: "Academic research paper structure and writing guide"
|
|
72
70
|
|
|
73
71
|
# User-level config schema
|
|
74
72
|
config:
|
package/skills/research/SKILL.md
CHANGED
|
@@ -137,7 +137,7 @@ in Proc. NIPS, 2017, vol. 30.
|
|
|
137
137
|
|
|
138
138
|
### Mode: Review (`--mode=review`)
|
|
139
139
|
|
|
140
|
-
Help write a literature review section:
|
|
140
|
+
Help write a literature review section or a full research paper:
|
|
141
141
|
|
|
142
142
|
1. Ask for: topic, papers to include, section length, target audience (course report vs journal)
|
|
143
143
|
2. Produce an outline first — confirm before writing
|
|
@@ -145,6 +145,63 @@ Help write a literature review section:
|
|
|
145
145
|
4. Include proper in-text citations
|
|
146
146
|
5. End with a "gap statement" that motivates the student's own work
|
|
147
147
|
|
|
148
|
+
When the student needs a full paper structure, use this as the reference scaffold:
|
|
149
|
+
|
|
150
|
+
#### Standard CS Paper Structure
|
|
151
|
+
|
|
152
|
+
1. **Title & Abstract** (150–250 words) — Problem → Approach → Results → Contribution
|
|
153
|
+
2. **Introduction** — motivate the problem, state contributions as a bullet list, outline the paper
|
|
154
|
+
3. **Background / Related Work** — group by theme not chronology; seminal papers + recent advances
|
|
155
|
+
4. **Problem Formulation** — formal definition, assumptions, notation
|
|
156
|
+
5. **Approach / Methodology** — proposed solution, algorithm/system design with diagrams, justification
|
|
157
|
+
6. **Evaluation / Experiments** — setup, metrics, results with tables/figures, ablation studies
|
|
158
|
+
7. **Discussion** — interpret results, limitations, threats to validity
|
|
159
|
+
8. **Conclusion** — summarise contributions, future work
|
|
160
|
+
9. **References** — consistent citation style (IEEE, ACM, or as required)
|
|
161
|
+
|
|
162
|
+
#### LaTeX Starter (IEEE Style)
|
|
163
|
+
|
|
164
|
+
```latex
|
|
165
|
+
\documentclass[conference]{IEEEtran}
|
|
166
|
+
\usepackage{cite}
|
|
167
|
+
\usepackage{amsmath}
|
|
168
|
+
\usepackage{graphicx}
|
|
169
|
+
\usepackage{hyperref}
|
|
170
|
+
|
|
171
|
+
\begin{document}
|
|
172
|
+
|
|
173
|
+
\title{Your Paper Title}
|
|
174
|
+
\author{
|
|
175
|
+
\IEEEauthorblockN{Your Name}
|
|
176
|
+
\IEEEauthorblockA{Department of Computer Science\\
|
|
177
|
+
Your University}
|
|
178
|
+
}
|
|
179
|
+
\maketitle
|
|
180
|
+
|
|
181
|
+
\begin{abstract}
|
|
182
|
+
Your abstract here (150--250 words).
|
|
183
|
+
\end{abstract}
|
|
184
|
+
|
|
185
|
+
\section{Introduction}
|
|
186
|
+
\section{Related Work}
|
|
187
|
+
\section{Methodology}
|
|
188
|
+
\section{Evaluation}
|
|
189
|
+
\section{Conclusion}
|
|
190
|
+
|
|
191
|
+
\bibliographystyle{IEEEtran}
|
|
192
|
+
\bibliography{references}
|
|
193
|
+
|
|
194
|
+
\end{document}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### Writing Tips to Surface
|
|
198
|
+
|
|
199
|
+
- Every figure needs a caption that stands alone without reading the text
|
|
200
|
+
- Every claim needs evidence — cite or show data
|
|
201
|
+
- Define every symbol the first time it appears
|
|
202
|
+
- Use consistent terminology — one word per concept throughout
|
|
203
|
+
- Common mistakes: vague problem statements, missing baselines, burying contributions mid-introduction, figures with unreadable font sizes
|
|
204
|
+
|
|
148
205
|
---
|
|
149
206
|
|
|
150
207
|
## Research Integrity Notes
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: semester
|
|
3
|
+
description: Manage semester context. Scaffolds a new SEMESTER.md, updates fields in an existing one, or shows what Pisces currently detects. Use when a student wants to set up or refresh their academic context.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
The central command for managing semester context — the primary signal Pisces uses to personalize every session. Supports three modes: initialize, update, and status.
|
|
8
|
+
|
|
9
|
+
## Activation
|
|
10
|
+
```
|
|
11
|
+
/semester # shows status if SEMESTER.md exists, prompts --init if not
|
|
12
|
+
/semester --init # scaffold a new SEMESTER.md interactively
|
|
13
|
+
/semester --update # update fields in the existing SEMESTER.md
|
|
14
|
+
/semester --status # show what Pisces currently detects
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Mode: `--init`
|
|
20
|
+
|
|
21
|
+
Run when no `SEMESTER.md` exists yet, or when starting a fresh semester.
|
|
22
|
+
|
|
23
|
+
### Step 1 — Collect Details
|
|
24
|
+
Ask for all of the following in a single message (do not ask one at a time):
|
|
25
|
+
|
|
26
|
+
1. **Semester and year** — e.g., Fall 2025, Spring 2026
|
|
27
|
+
2. **Current week of semester** — integer, e.g., 1
|
|
28
|
+
3. **Year of study** — 1 (freshman) through 6 (graduate)
|
|
29
|
+
4. **Courses this semester** — each as `COURSECODE: Course Name`, e.g., `CS301: Operating Systems`. Accept as many as they have. Gently correct codes that don't match `[A-Z]{2,4}\d{2,4}` (e.g., "cs301" → "CS301").
|
|
30
|
+
5. **Active project** — current assignment or project (or "none")
|
|
31
|
+
6. **Primary language** — language they write most code in this semester
|
|
32
|
+
7. **Anything they feel weak on** — optional
|
|
33
|
+
|
|
34
|
+
If the student provides some details inline when invoking `/semester --init`, pre-fill what is already known and only ask for what is missing.
|
|
35
|
+
|
|
36
|
+
### Step 2 — Generate SEMESTER.md
|
|
37
|
+
Produce the complete file as a fenced `markdown` code block with real values — no placeholder text. Use this exact structure:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
semester: <semester> <year>
|
|
41
|
+
year: <year>
|
|
42
|
+
week: <week>
|
|
43
|
+
year_of_study: <year_of_study>
|
|
44
|
+
|
|
45
|
+
## Courses
|
|
46
|
+
|
|
47
|
+
<one line per course: - COURSECODE: Course Name>
|
|
48
|
+
|
|
49
|
+
## Active Project
|
|
50
|
+
|
|
51
|
+
active_project: <project name and course, or "none">
|
|
52
|
+
|
|
53
|
+
## Current Focus
|
|
54
|
+
|
|
55
|
+
Working on: <active project or first task>
|
|
56
|
+
Upcoming: <first deadline or exam if mentioned, else leave blank>
|
|
57
|
+
Feeling weak on: <weak topics, else leave blank>
|
|
58
|
+
|
|
59
|
+
## Notes
|
|
60
|
+
|
|
61
|
+
Primary language: <language>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Do not include any comment block — that belongs only in the raw template file.
|
|
65
|
+
|
|
66
|
+
### Step 3 — Save Instructions
|
|
67
|
+
Tell the student:
|
|
68
|
+
- **Recommended location:** `~/university/SEMESTER.md` — Pisces finds it from any course subdirectory
|
|
69
|
+
- Saving to the current directory also works
|
|
70
|
+
- Reloads automatically on every `cd` — no restart needed
|
|
71
|
+
- Update `week:` each week and `active_project:` whenever it changes
|
|
72
|
+
|
|
73
|
+
### Step 4 — Live Preview
|
|
74
|
+
Greet the student using their actual semester context to show personalization working immediately.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Mode: `--update`
|
|
79
|
+
|
|
80
|
+
Run when the student wants to change one or more fields without starting from scratch.
|
|
81
|
+
|
|
82
|
+
### Step 1 — Identify What to Change
|
|
83
|
+
Ask: *"What would you like to update? (e.g., week number, active project, courses, semester, year of study, weak topics)"*
|
|
84
|
+
|
|
85
|
+
Common update patterns:
|
|
86
|
+
- **Weekly update** — ask for new `week:` value and new `active_project:` if changed
|
|
87
|
+
- **New semester** — ask for new semester, year, week (reset to 1), courses, and year_of_study
|
|
88
|
+
- **Course change** — add or remove a course from the list
|
|
89
|
+
- **Weak topics** — replace the "Feeling weak on" line
|
|
90
|
+
|
|
91
|
+
### Step 2 — Output the Updated File
|
|
92
|
+
Show a brief summary of what changed, then output the complete updated `SEMESTER.md` as a fenced code block so the student can copy-paste it wholesale. Never output a partial file that would leave the student manually merging.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Mode: `--status`
|
|
97
|
+
|
|
98
|
+
Run to inspect what Pisces currently detects without changing anything.
|
|
99
|
+
|
|
100
|
+
Output a structured summary of the active session context:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Semester Context
|
|
104
|
+
────────────────────────────────────────
|
|
105
|
+
Source: ~/university/SEMESTER.md (or "not found")
|
|
106
|
+
Semester: Fall 2025, Week 7
|
|
107
|
+
Year of study: 2nd year
|
|
108
|
+
Courses: CS301, CS315, CS320, MATH210
|
|
109
|
+
Active project: shell-implementation (CS301)
|
|
110
|
+
Feeling weak on: Virtual memory, page tables
|
|
111
|
+
────────────────────────────────────────
|
|
112
|
+
Folder context: CS301 project detected (cpp, has tests, has CI)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
If no `SEMESTER.md` is found, say so clearly and offer to run `--init`.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Default Behavior (no flag)
|
|
120
|
+
|
|
121
|
+
- If a `SEMESTER.md` is detected in the session: behave as `--status`, then ask if the student wants to `--update` anything.
|
|
122
|
+
- If no `SEMESTER.md` is detected: explain that it's missing and ask if the student wants to run `--init` now.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Constraints
|
|
127
|
+
- Never produce placeholder text in generated file output — use real values from what the student told you, or omit the field if unknown.
|
|
128
|
+
- Keep the SEMESTER.md format exactly as shown so the semester-detector extension can parse it correctly.
|
|
129
|
+
- Course codes must match `[A-Z]{2,4}\d{2,4}` — gently correct any that do not.
|