@aethrekh/pi-cs 0.1.1 → 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 CHANGED
@@ -7,6 +7,22 @@ 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
+
10
26
  ## 0.1.1 (2026-06-02)
11
27
 
12
28
  ### ### Added
package/README.md CHANGED
@@ -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:pi-cs
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-init
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
- Customize Pisces behavior in your Pi config:
156
-
157
- ```yaml
158
- # ~/.pi/config.yaml (pi-cs section)
159
- pi-cs:
160
- student:
161
- name: Alex
162
- year_of_study: 2
163
- primary_language: python
164
- explanations:
165
- default_depth: intermediate
166
- prefer_visuals: true
167
- productivity:
168
- burnout_nudges: true
169
- session_warning_minutes: 180
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:pi-cs
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
- │ │ ├── homework/SKILL.md # /homework skill
197
- │ │ ├── project/SKILL.md # /project skill
198
- │ │ ├── review/SKILL.md # /review skill
199
- │ │ ├── explain/SKILL.md # /explain skill
200
- │ │ ├── leetcode/SKILL.md # /leetcode skill
201
- │ │ ├── exam/SKILL.md # /exam skill
202
- │ │ └── research/SKILL.md # /research skill
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 # Auto-loads SEMESTER.md
205
- │ │ ├── folder-detector.ts # Detects CS folder structures
206
- │ │ ├── integrity-guard.ts # Academic integrity monitoring
207
- │ │ └── progress-tracker.ts # Weekly stats & burnout nudges
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
- ├── semester-init.md # SEMESTER.md template
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] 7 core skills
241
+ - [x] 8 core skills
225
242
  - [x] 4 background extensions
226
243
  - [x] Semester context system
227
244
  - [x] Academic integrity guard
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aethrekh/pi-cs",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Pisces — The CS Student Edition for Pi Coding Agent. Your personal AI teaching assistant from homework to thesis.",
5
5
  "keywords": [
6
6
  "academic",
package/pi-cs.meta.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pi-cs",
3
- "version": "0.1.1",
4
- "built_at": "2026-06-02T06:13:15.521Z",
3
+ "version": "0.1.2",
4
+ "built_at": "2026-06-02T08:57:02.495Z",
5
5
  "entry": "index.js",
6
6
  "node_minimum": "18.0.0"
7
7
  }
package/pi-package.yaml CHANGED
@@ -1,5 +1,5 @@
1
1
  name: pi-cs
2
- version: 0.1.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
5
  icon: public/pisces-logo-512.png
@@ -33,6 +33,9 @@ skills:
33
33
  - name: research
34
34
  path: skills/research/SKILL.md
35
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)"
36
39
 
37
40
  # Extensions that run automatically in the background
38
41
  extensions:
@@ -64,12 +67,6 @@ templates:
64
67
  - name: semester-init
65
68
  path: templates/semester-init.md
66
69
  description: "Initialize a new semester workspace with SEMESTER.md and folder structure"
67
- - name: project-init
68
- path: templates/project-init.md
69
- description: "Bootstrap a new CS project with README, structure, and CI"
70
- - name: research-paper
71
- path: templates/research-paper.md
72
- description: "Academic research paper structure and writing guide"
73
70
 
74
71
  # User-level config schema
75
72
  config:
@@ -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.