Tracks and reports dark mode implementation progress across the MyJKKN application. Monitors completion status, calculates statistics, identifies bottlenecks, and provides actionable insights. Use this skill to check status, resume work, or generate progress reports.
npx claudepluginhub jkkn-institutions/claude-plugin-roja --plugin myjkkn-dark-mode-pluginThis skill uses the workspace's default tool permissions.
This skill manages progress tracking for dark mode implementation across the MyJKKN application.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
This skill manages progress tracking for dark mode implementation across the MyJKKN application.
Use this skill when:
Load and display current progress:
cat .dark-mode-progress.json
Output format:
๐ Dark Mode Implementation Progress
๐ฏ Overall Status
โโ Total Modules: 14
โโ Completed: 3 (21%)
โโ In Progress: 2 (14%)
โโ Pending: 9 (64%)
โโ Overall Score: 35%
๐ File Statistics
โโ Total Files: 150
โโ Files with Dark Mode: 52 (35%)
โโ Files Needing Work: 98 (65%)
โโ Recently Completed: 5
โฑ๏ธ Last Updated: 2 hours ago
Show detailed module status:
๐ฆ Module Status
โ
COMPLETED (100%)
โโ components/ui - All 15 files completed
๐ IN PROGRESS (40-99%)
โโ dashboard (60%) - 3/5 files completed
โ โโ Next: _components/stats-card.tsx
โโ billing (75%) - 6/8 files completed
โโ Next: _components/invoice-table.tsx
โณ PENDING (0-39%)
โโ academic (10%) - 2/20 files completed
โโ admissions (0%) - 0/8 files completed
โโ students (5%) - 1/15 files completed
โโ ... 6 more modules
Automatically determine what to work on next:
function getNextWorkItem(): WorkItem {
// Priority rules:
// 1. Continue incomplete module (in_progress status)
// 2. Start high-priority modules (dashboard, profile, notifications)
// 3. Lowest score modules (biggest impact)
// 4. Within module: pages before components
return {
module: "dashboard",
file: "app/(routes)/dashboard/_components/stats-card.tsx",
priority: "high",
estimatedImpact: "high",
reasoning: "Continue dashboard module (60% complete)"
};
}
After file completion:
function updateProgress(updates: {
module: string;
file: string;
status: 'completed' | 'needs_review' | 'skipped';
issues?: string[];
notes?: string;
}) {
// 1. Update file status
// 2. Recalculate module score
// 3. Update module status
// 4. Recalculate overall score
// 5. Update timestamp
// 6. Write to .dark-mode-progress.json
}
Create detailed progress reports:
Daily Summary Report
๐๏ธ Dark Mode Progress - January 16, 2025
Today's Achievements:
โ
Completed 5 files
โ
Improved 2 modules
โ
Overall progress: 30% โ 35% (+5%)
Files Completed Today:
1. โ
dashboard/page.tsx
2. โ
dashboard/_components/header.tsx
3. โ
dashboard/_components/welcome-card.tsx
4. โ
billing/page.tsx
5. โ
billing/_components/summary-card.tsx
Module Progress:
๐ dashboard: 40% โ 60% (+20%)
๐ billing: 62% โ 75% (+13%)
Next Session Goals:
๐ฏ Complete dashboard module (2 files remaining)
๐ฏ Start academic module (high priority)
๐ฏ Fix components/layout issues (3 pending)
Module Completion Report
๐ Module Completed: Dashboard
๐ Statistics:
โโ Total Files: 5
โโ Files Updated: 5
โโ Changes Made: 23 color replacements
โโ Time Spent: 2 sessions
โโ Completion Date: 2025-01-16
๐ Summary:
All dashboard pages and components now have proper dark mode support.
Used semantic colors throughout for consistency.
๐จ Patterns Applied:
- Cards: bg-card with text-card-foreground
- Stats: bg-muted with accent highlights
- Charts: CSS variable colors
- Interactive: hover:bg-accent transitions
โ
Quality Checks:
โ All hardcoded colors replaced
โ Dark variants added where needed
โ Visual hierarchy maintained
โ No functionality changes
๐ Next Module: Billing (75% complete)
type FileStatus =
| 'pending' // Not started
| 'in_progress' // Currently working on
| 'completed' // Fully done
| 'needs_review' // Issues found, needs attention
| 'skipped'; // Intentionally skipped
interface FileProgress {
file: string;
hasDarkMode: boolean;
status: FileStatus;
issues?: string[];
notes?: string;
completedAt?: string;
reviewedBy?: string;
}
type ModuleStatus =
| 'pending' // Not started (0-39%)
| 'in_progress' // Partially complete (40-99%)
| 'completed' // Fully done (100%)
| 'needs_review'; // Issues found
interface ModuleProgress {
name: string;
path: string;
status: ModuleStatus;
priority: 'high' | 'medium' | 'low';
darkModeScore: number; // 0-100
totalFiles: number;
filesCompleted: number;
pages: FileProgress[];
components: FileProgress[];
startedAt?: string;
completedAt?: string;
}
function calculateModuleScore(module: ModuleProgress): number {
const totalFiles = module.pages.length + module.components.length;
const completedFiles = [
...module.pages,
...module.components
].filter(f => f.status === 'completed').length;
return (completedFiles / totalFiles) * 100;
}
function calculateOverallScore(modules: ModuleProgress[]): number {
const totalFiles = modules.reduce((sum, m) =>
sum + m.pages.length + m.components.length, 0
);
const completedFiles = modules.reduce((sum, m) =>
sum + m.pages.filter(p => p.status === 'completed').length
+ m.components.filter(c => c.status === 'completed').length, 0
);
return (completedFiles / totalFiles) * 100;
}
function startWorkSession() {
// 1. Load progress file
const progress = loadProgress();
// 2. Show summary
displayProgressSummary(progress);
// 3. Identify next work
const nextItem = getNextWorkItem(progress);
// 4. Create todo list
createSessionTodos(nextItem);
// 5. Ready to work
return nextItem;
}
function endWorkSession() {
// 1. Save final progress
saveProgress();
// 2. Generate session summary
const summary = generateSessionSummary();
// 3. Suggest next session goals
const nextGoals = suggestNextGoals();
// 4. Output report
outputSessionReport(summary, nextGoals);
}
Track quality indicators:
interface QualityMetrics {
// Completeness
filesWithAllColorsSemantic: number;
filesWithSomeDarkClasses: number;
filesFullyDarkModeReady: number;
// Common Issues
hardcodedColorsRemaining: number;
missingDarkVariants: number;
inconsistentPatterns: number;
// Review Status
filesNeedingReview: number;
reviewComments: string[];
}
Create progress visualizations:
Overall Progress: 35%
[โโโโโโโโโโโโโโโโโโโโ] 35/100
Module Breakdown:
ui-components [โโโโโโโโโโโโโโโโโโโโโโ] 100%
dashboard [โโโโโโโโโโโโโโโโโโโโโโ] 60%
billing [โโโโโโโโโโโโโโโโโโโโโโ] 75%
academic [โโโโโโโโโโโโโโโโโโโโโโ] 10%
admissions [โโโโโโโโโโโโโโโโโโโโโโ] 0%
students [โโโโโโโโโโโโโโโโโโโโโโ] 5%
...
Top Priority Areas:
1. ๐ด admissions (0%) - 8 files pending
2. ๐ด students (5%) - 14 files pending
3. ๐ก academic (10%) - 18 files pending
Sync with TodoWrite tool:
function syncWithTodoWrite(progress: Progress) {
const todos = [];
// Add pending modules
for (const module of progress.modules) {
if (module.status === 'pending') {
todos.push({
content: `Apply dark mode to ${module.name} module`,
status: 'pending',
activeForm: `Applying dark mode to ${module.name}`
});
} else if (module.status === 'in_progress') {
// Add specific file todos
for (const file of [...module.pages, ...module.components]) {
if (file.status === 'pending') {
todos.push({
content: `Apply dark mode to ${file.file}`,
status: 'pending',
activeForm: `Applying dark mode`
});
}
}
}
}
return todos;
}
Provide helpful alerts:
โ ๏ธ Alerts:
- 5 files marked 'needs_review' - attention required
- dashboard module 95% complete - 1 file remaining!
- No progress in 3 days - resume work?
๐ฏ Suggestions:
- Focus on high-priority modules (dashboard, profile)
- Complete in-progress modules before starting new ones
- Review flagged files for consistency
โจ Milestones:
- ๐ 50% overall completion approaching! (35% โ 50%)
- ๐ 3 modules fully complete
- ๐ช 52 files updated with dark mode
Use the progress-tracker skill to show current dark mode progress.
// Claude will:
1. Load .dark-mode-progress.json
2. Calculate current statistics
3. Display formatted progress report
4. Suggest next actions
Use the progress-tracker skill to determine what to work on next.
// Claude will:
1. Load progress
2. Analyze incomplete work
3. Identify next highest-priority item
4. Create todos for the session
5. Ready to start work
Use the progress-tracker skill to generate a detailed progress report.
// Claude will:
1. Load progress
2. Calculate all metrics
3. Generate comprehensive report
4. Include recommendations
5. Output formatted report