Why Use This
This skill provides specialized capabilities for WellApp-ai's codebase.
Use Cases
- Developing new features in the WellApp-ai repository
- Refactoring existing code to follow WellApp-ai standards
- Understanding and working with WellApp-ai's codebase structure
Install Guide
2 steps - 1
- 2
Install inside Ananke
Click Install Skill, paste the link below, then press Install.
https://github.com/WellApp-ai/Well/tree/main/cursor-rules/skills/notion-sync
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Updated At Jan 18, 2026, 10:57 AM
Skill Stats
SKILL.md 267 Lines
Total Files 1
Total Size 0 B
License NOASSERTION
---
name: notion-sync
description: Standardize Notion task updates across all modes
---
# Notion Sync Skill
Standardize how Notion tasks are updated across all modes.
## When to Use
- Push PR mode: update PR link and append plan
- Init mode: update branch name
- Any mode updating task status
- Appending content to task pages
## Phases
### Phase 1: Retrieve Task Page
Fetch current task state:
```
API-retrieve-a-page:
page_id: [task-page-id]
```
Verify the page exists and note current field values.
### Phase 2: Update Standard Fields
Update properties based on context:
**Available fields:**
| Field | Type | When to Update |
|-------|------|----------------|
| Github PR link | url | On PR creation |
| Branch name | rich_text | On branch creation |
| Lifecycle/Status | select | On state changes |
**API call:**
```
API-patch-page:
page_id: [task-page-id]
properties:
"Github PR link": { url: "[PR-URL]" }
"Branch name": { rich_text: [{ text: { content: "[branch-name]" }}]}
```
### Phase 3: Append Content (Optional)
If content needs to be added to the page body:
**Get existing blocks:**
```
API-get-block-children:
block_id: [page-id]
```
**Append new content:**
```
API-patch-block-children:
block_id: [page-id]
children: [
{
"type": "heading_2",
"heading_2": { "rich_text": [{ "text": { "content": "Implementation Plan" }}]}
},
{
"type": "paragraph",
"paragraph": { "rich_text": [{ "text": { "content": "[plan-content]" }}]}
}
]
```
**Content types to append:**
- Implementation plans (from Plan mode)
- PR summaries (from Push PR mode)
- Status updates
### Phase 4: Confirm Sync
Verify the update was successful:
```
API-retrieve-a-page:
page_id: [task-page-id]
```
Check that updated fields reflect new values.
---
## Phase 5: Session Journal Sync (NEW)
Sync session metrics and decisions to Session Journal database.
### When to Run
- After PR is created (via push-pr.mdc)
- On manual "sync session" command
- On session abandon
### 5.1: Gather Session Data
Collect from `session-status` skill:
- Duration, loops, rework, waiting, RED count, escalations
Collect from `decision-capture` skill:
- Decisions made this session (KO, significant OK)
- Learnings captured (Kaizen/Hansei)
### 5.2: Check for Existing Session
```
Notion MCP: API-post-search
query: "[branch-name]"
filter:
property: "object"
value: "page"
sort:
property: "last_edited_time"
direction: "descending"
```
### 5.3: Create or Update Session Page
**If new session:**
```
Notion MCP: API-post-page
parent: { database_id: "[SESSION_JOURNAL_DB_ID]" }
properties:
Title: { title: [{ text: { content: "[Feature] - [Date]" }}]}
Task: { relation: [{ id: "[kanban_task_id]" }]}
Date: { date: { start: "[session_date]" }}
Duration: { number: [total_minutes] }
Phase Reached: { select: { name: "[phase]" }}
Outcome: { select: { name: "[outcome]" }}
Loops: { number: [total_loops] }
Rework: { number: [rework_count] }
Waiting: { number: [waiting_minutes] }
RED Count: { number: [red_count] }
Escalations: { number: [escalation_count] }
Branch: { rich_text: [{ text: { content: "[branch-name]" }}]}
```
**If existing session:**
```
Notion MCP: API-patch-page
page_id: [existing_page_id]
properties:
Duration: { number: [updated_minutes] }
Phase Reached: { select: { name: "[latest_phase]" }}
Outcome: { select: { name: "[outcome]" }}
Loops: { number: [updated_loops] }
... (other updated metrics)
```
### 5.4: Append Decisions and Learnings
```
Notion MCP: API-patch-block-children
block_id: [session_page_id]
children:
- type: heading_2
heading_2: { rich_text: [{ text: { content: "Decisions" }}]}
- type: bulleted_list_item
bulleted_list_item: { rich_text: [{ text: { content: "[KO] [decision 1] - [rationale]" }}]}
- type: bulleted_list_item
bulleted_list_item: { rich_text: [{ text: { content: "[OK] [decision 2] - [rationale]" }}]}
- type: heading_2
heading_2: { rich_text: [{ text: { content: "Learnings" }}]}
- type: bulleted_list_item
bulleted_list_item: { rich_text: [{ text: { content: "[Kaizen] [learning 1]" }}]}
- type: bulleted_list_item
bulleted_list_item: { rich_text: [{ text: { content: "[Hansei] [learning 2]" }}]}
```
### 5.5: Link to Kanban Task
```
Notion MCP: API-patch-page
page_id: [kanban_task_id]
properties:
Session Journal: { relation: [{ id: "[session_page_id]" }]}
```
### 5.6: Create ADR for High-Impact Decisions
If any decision has Impact = HIGH:
1. Create ADR file in `/docs/decisions/`
2. Link ADR URL in Session Journal page
### Session Journal Output
```markdown
## Session Journal Synced
**Session:** [Feature] - [Date]
**Page:** [Notion URL]
**Kanban:** Linked to [Task name]
### Metrics Recorded
- Duration: [N]min
- Loops: [N]
- Rework: [N]
- RED Count: [N]
- Escalations: [N]
### Decisions: [N] captured
### Learnings: [N] captured
[If ADR: ADR-[NNN] created]
**Status:** Sync successful
```
---
## Output
Present sync summary:
```
## Notion Sync Complete
**Task:** [task-title]
**Page ID:** [page-id]
### Updates Applied
- ✅ Github PR link: [url]
- ✅ Branch name: [branch]
- ✅ Content appended: [description]
**Status:** Sync successful
```
---
## Standard Field Reference
**Staffing Database ID:** `256c4d5e-7bea-80ca-ba8d-c0ba0bb881c6`
**Common Properties:**
- `Github PR link` (url) - Link to GitHub PR
- `Branch name` (rich_text) - Git branch name
- `Lifecycle` or `Status` (select) - Task state
- `Assignee` (people) - Task owner
- `Sprint` (relation) - Sprint association
---
## Integration
This skill is invoked by:
- `push-pr.mdc` - Phase 2.2 (Sync Notion) + Phase 4 (Session Journal)
- `init.mdc` - Update branch name
- Any mode needing Notion updates
- Manual "sync session" command
**Notion MCP Tools:**
- `API-retrieve-a-page` - Get task details
- `API-get-block-children` - Get page content
- `API-patch-page` - Update page properties
- `API-patch-block-children` - Add content to page
- `API-post-page` - Create new session entries
- `API-post-search` - Find existing sessions by branch