Loading...
Loading...
Capture architectural decisions and changes made during a GSDL project into a structured markdown document. Analyzes git history and diffs, extracts key decisions, and optionally pushes the doc to Slite or Notion as a child page. Called by the gsdl orchestrator after all implementation tasks are complete.
npx skill4agent add nsantini/gsdl gsdl-document-decisionsPROJECT_NAMEWORKSPACE_ROOTPRD_PATHprogress.mdTASKS_PATHprogress.md[WORKSPACE_ROOT]/[PRD_PATH][WORKSPACE_ROOT]/[TASKS_PATH]gsdlgit log --oneline --no-merges[N.0]git show --stat [COMMIT_HASH]git diff HEAD~[N] HEAD --name-statusNpackage.jsonrequirements.txtgo.mod[WORKSPACE_ROOT]/.planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].md# [Project Name] — Decisions & Architecture
> Generated by GSDL on [YYYY-MM-DD]
> PRD: [prd file name]
> Tasks: [tasks file name]
## Summary
[2–4 sentences describing what was built, the core approach taken, and any major constraints honored.]
## Key Decisions
### [Decision Title]
**What:** [What was decided]
**Why:** [Rationale, if evident from code/commits/PRD]
**Impact:** [Files, modules, or behaviors affected]
[Repeat for each significant decision — aim for 3–8 decisions]
## Architecture Changes
### New Structure
[Bulleted list of new directories, modules, or files created with one-line descriptions]
### Dependencies Added
[Bulleted list of new packages/libraries added, with purpose]
### Integration Points
[Any new APIs, services, databases, or external integrations introduced]
## What Was Not Built
[Bulleted list of PRD requirements or tasks explicitly skipped or deferred, with brief reason if known]
## Files Changed
| File | Change |
|------|--------|
| [path] | Created / Modified / Deleted |
[Table listing all files changed during the project, sorted by most significant first]✅ Decisions document saved to: .planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].md
Would you like to publish this to Slite or Notion?
- Type "slite [URL or note ID]" to publish as a child doc in Slite
- Type "notion [URL or page ID]" to publish as a child page in Notion
- Type "no" or press Enter to skip
Paste the URL of the parent doc/page where this should live, or skip.https://slite.com/app/docs/{NOTE_ID}/{title}NOTE_ID/docs/https://{workspace}.slite.com/p/{NOTE_ID}/{title}NOTE_ID/p/https://slite.com/p/{NOTE_ID}/{title}NOTE_ID/p/~/.cursor/mcp.json.cursor/mcp.jsonslitecreate-notetitle[Project Name] — Decisions & ArchitectureparentNoteIdmarkdown$SLITE_API_KEYPOST https://api.slite.com/v1/notes
Authorization: Bearer $SLITE_API_KEY
Content-Type: application/json
{
"title": "[Project Name] — Decisions & Architecture",
"parentNoteId": "[PARENT_NOTE_ID]",
"markdown": "[document content]"
}✅ Published to Slite: [note URL].planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].mdhttps://www.notion.so/{workspace}/{Page-Title}-{PAGE_ID}https://www.notion.so/{PAGE_ID}https://{workspace}.notion.site/{Page-Title}-{PAGE_ID}~/.cursor/mcp.json.cursor/mcp.jsonnotion[Project Name] — Decisions & Architecture$NOTION_TOKENPOST https://api.notion.com/v1/pages
Authorization: Bearer $NOTION_TOKEN
Notion-Version: 2022-06-28
Content-Type: application/json
{
"parent": { "page_id": "[PARENT_PAGE_ID]" },
"properties": {
"title": {
"title": [{ "text": { "content": "[Project Name] — Decisions & Architecture" } }]
}
},
"children": [
// Convert the markdown document into Notion block objects
// Map headings → heading_2/heading_3 blocks
// Map paragraphs → paragraph blocks
// Map bullet lists → bulleted_list_item blocks
// Map tables → table blocks
// Map bold text → rich_text with bold annotation
]
}| Markdown | Notion Block Type |
|---|---|
| |
| |
| |
| |
| |
| Regular paragraph | |
| ` | table |
| |
✅ Published to Notion: [page URL].planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].md.planning/[PROJECT_NAME]/decisions-[PROJECT_NAME].mddecisions-[PROJECT_NAME]-[YYYYMMDD].md