@@ -337,8 +337,11 @@ export function exportToZed(rules: RuleBlock[], outputPath: string, options?: Ex
337337 writeFileSync ( outputPath , fullContent , 'utf-8' )
338338}
339339
340- export function exportToCodex ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
341- // Filter out private rules unless includePrivate is true
340+ function exportSingleFileWithHeaders (
341+ rules : RuleBlock [ ] ,
342+ outputPath : string ,
343+ options ?: ExportOptions
344+ ) : void {
342345 const filteredRules = rules . filter ( rule => ! rule . metadata . private || options ?. includePrivate )
343346
344347 const alwaysApplyRules = filteredRules . filter ( r => r . metadata . alwaysApply !== false )
@@ -359,6 +362,10 @@ export function exportToCodex(rules: RuleBlock[], outputPath: string, options?:
359362 writeFileSync ( outputPath , fullContent , 'utf-8' )
360363}
361364
365+ export function exportToCodex ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
366+ exportSingleFileWithHeaders ( rules , outputPath , options )
367+ }
368+
362369export function exportToAider ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
363370 // Filter out private rules unless includePrivate is true
364371 const filteredRules = rules . filter ( rule => ! rule . metadata . private || options ?. includePrivate )
@@ -379,47 +386,11 @@ export function exportToAider(rules: RuleBlock[], outputPath: string, options?:
379386}
380387
381388export function exportToClaudeCode ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
382- // Filter out private rules unless includePrivate is true
383- const filteredRules = rules . filter ( rule => ! rule . metadata . private || options ?. includePrivate )
384-
385- const alwaysApplyRules = filteredRules . filter ( r => r . metadata . alwaysApply !== false )
386- const conditionalSection = generateConditionalRulesSection ( filteredRules , dirname ( outputPath ) )
387-
388- const mainContent = alwaysApplyRules
389- . map ( rule => {
390- const header = rule . metadata . description ? `# ${ rule . metadata . description } \n\n` : ''
391- return header + rule . content
392- } )
393- . join ( '\n\n' )
394-
395- const fullContent = conditionalSection
396- ? `${ mainContent } \n\n${ conditionalSection } `
397- : mainContent
398-
399- ensureDirectoryExists ( outputPath )
400- writeFileSync ( outputPath , fullContent , 'utf-8' )
389+ exportSingleFileWithHeaders ( rules , outputPath , options )
401390}
402391
403392export function exportToOpenCode ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
404- // Filter out private rules unless includePrivate is true
405- const filteredRules = rules . filter ( rule => ! rule . metadata . private || options ?. includePrivate )
406-
407- const alwaysApplyRules = filteredRules . filter ( r => r . metadata . alwaysApply !== false )
408- const conditionalSection = generateConditionalRulesSection ( filteredRules , dirname ( outputPath ) )
409-
410- const mainContent = alwaysApplyRules
411- . map ( rule => {
412- const header = rule . metadata . description ? `# ${ rule . metadata . description } \n\n` : ''
413- return header + rule . content
414- } )
415- . join ( '\n\n' )
416-
417- const fullContent = conditionalSection
418- ? `${ mainContent } \n\n${ conditionalSection } `
419- : mainContent
420-
421- ensureDirectoryExists ( outputPath )
422- writeFileSync ( outputPath , fullContent , 'utf-8' )
393+ exportSingleFileWithHeaders ( rules , outputPath , options )
423394}
424395
425396export function exportToGemini ( rules : RuleBlock [ ] , outputPath : string , options ?: ExportOptions ) : void {
@@ -580,7 +551,7 @@ export function exportAll(rules: RuleBlock[], repoPath: string, dryRun = false,
580551 exportToCodex ( rules , join ( repoPath , 'AGENTS.md' ) , options )
581552 exportToAider ( rules , join ( repoPath , 'CONVENTIONS.md' ) , options )
582553 exportToClaudeCode ( rules , join ( repoPath , 'CLAUDE.md' ) , options )
583- exportToOpenCode ( rules , join ( repoPath , 'AGENTS.opencode. md' ) , options )
554+ exportToOpenCode ( rules , join ( repoPath , 'AGENTS.md' ) , options )
584555 exportToGemini ( rules , join ( repoPath , 'GEMINI.md' ) , options )
585556 exportToQodo ( rules , join ( repoPath , 'best_practices.md' ) , options )
586557 exportToAmazonQ ( rules , repoPath , options )
0 commit comments