- Introduced coding standards for TypeScript and React in SKILL.md. - Added continuous learning skill with configuration and evaluation scripts. - Created detail layout guidelines for read-only pages. - Established form layout rules for data-entry forms. - Documented project guidelines for the frontend monorepo. - Implemented security review checklist for frontend/Electron applications. - Developed a verification loop skill for comprehensive session checks. This commit enhances the skill set available for developers, ensuring adherence to best practices and improving code quality.
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* SessionStart Hook - Load previous context on new session
|
|
*
|
|
* Cross-platform (Windows, macOS, Linux)
|
|
*
|
|
* Runs when a new Cursor session starts. Checks for recent session
|
|
* files and notifies the agent of available context to load.
|
|
*/
|
|
|
|
const path = require('path');
|
|
const {
|
|
getSessionsDir,
|
|
getLearnedSkillsDir,
|
|
findFiles,
|
|
ensureDir,
|
|
log
|
|
} = require('../lib/utils');
|
|
const { getPackageManager, getSelectionPrompt } = require('../lib/package-manager');
|
|
|
|
async function main() {
|
|
const sessionsDir = getSessionsDir();
|
|
const learnedDir = getLearnedSkillsDir();
|
|
|
|
// Ensure directories exist
|
|
ensureDir(sessionsDir);
|
|
ensureDir(learnedDir);
|
|
|
|
// Check for recent session files (last 7 days)
|
|
const recentSessions = findFiles(sessionsDir, '*.tmp', { maxAge: 7 });
|
|
|
|
if (recentSessions.length > 0) {
|
|
const latest = recentSessions[0];
|
|
log(`[SessionStart] Found ${recentSessions.length} recent session(s)`);
|
|
log(`[SessionStart] Latest: ${latest.path}`);
|
|
}
|
|
|
|
// Check for learned skills
|
|
const learnedSkills = findFiles(learnedDir, '*.md');
|
|
|
|
if (learnedSkills.length > 0) {
|
|
log(`[SessionStart] ${learnedSkills.length} learned skill(s) available in ${learnedDir}`);
|
|
}
|
|
|
|
// Detect and report package manager
|
|
const pm = getPackageManager();
|
|
log(`[SessionStart] Package manager: ${pm.name} (${pm.source})`);
|
|
|
|
// If package manager was detected via fallback, show selection prompt
|
|
if (pm.source === 'fallback' || pm.source === 'default') {
|
|
log('[SessionStart] No package manager preference found.');
|
|
log(getSelectionPrompt());
|
|
}
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
main().catch(err => {
|
|
console.error('[SessionStart] Error:', err.message);
|
|
process.exit(0); // Don't block on errors
|
|
});
|