- 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.
60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* Strategic Compact Suggester
|
|
*
|
|
* Cross-platform (Windows, macOS, Linux)
|
|
*
|
|
* Runs on PreToolUse or periodically to suggest manual compaction at logical intervals
|
|
*
|
|
* Why manual over auto-compact:
|
|
* - Auto-compact happens at arbitrary points, often mid-task
|
|
* - Strategic compacting preserves context through logical phases
|
|
* - Compact after exploration, before execution
|
|
* - Compact after completing a milestone, before starting next
|
|
*/
|
|
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const { getTempDir, readFile, writeFile, log } = require('../lib/utils');
|
|
|
|
async function main() {
|
|
// Track tool call count (increment in a temp file)
|
|
// Use a session-specific counter file based on PID from parent process
|
|
// or session ID from environment
|
|
const sessionId = process.env.CLAUDE_SESSION_ID || process.ppid || 'default';
|
|
const counterFile = path.join(getTempDir(), `claude-tool-count-${sessionId}`);
|
|
const threshold = parseInt(process.env.COMPACT_THRESHOLD || '50', 10);
|
|
|
|
let count = 1;
|
|
|
|
// Read existing count or start at 1
|
|
const existing = readFile(counterFile);
|
|
if (existing) {
|
|
count = parseInt(existing.trim(), 10) + 1;
|
|
}
|
|
|
|
// Save updated count
|
|
writeFile(counterFile, String(count));
|
|
|
|
// Suggest compact after threshold tool calls
|
|
if (count === threshold) {
|
|
log(
|
|
`[StrategicCompact] ${threshold} tool calls reached - consider /compact if transitioning phases`,
|
|
);
|
|
}
|
|
|
|
// Suggest at regular intervals after threshold
|
|
if (count > threshold && count % 25 === 0) {
|
|
log(
|
|
`[StrategicCompact] ${count} tool calls - good checkpoint for /compact if context is stale`,
|
|
);
|
|
}
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error('[StrategicCompact] Error:', err.message);
|
|
process.exit(0);
|
|
});
|