// allow-test-rule: source-text-is-the-product // Workflow .md / agent .md / command .md / reference .md files — their text // IS what the runtime loads. Testing text content tests the deployed contract. // Per CONTRIBUTING.md exception matrix. const { test, describe } = require('node:test'); const assert = require('node:assert/strict'); const fs = require('fs'); const path = require('path'); describe('Cline runtime support', () => { test('.clinerules file exists at repo root', () => { const p = path.join(__dirname, '..', '.clinerules'); assert.ok(fs.existsSync(p), '.clinerules should exist at repo root'); }); test('.clinerules references GSD workflow enforcement', () => { const content = fs.readFileSync(path.join(__dirname, '..', '.clinerules'), 'utf-8'); assert.ok( content.includes('gsd') || content.includes('GSD') || content.includes('workflow'), '.clinerules should mention GSD workflows' ); }); test('.clinerules includes coding standards', () => { const content = fs.readFileSync(path.join(__dirname, '..', '.clinerules'), 'utf-8'); assert.ok(content.includes('CommonJS') || content.includes('require'), '.clinerules should mention CommonJS standard'); assert.ok(content.includes('node:test') || content.includes('node:assert'), '.clinerules should mention test framework'); }); test('.clinerules includes architecture overview', () => { const content = fs.readFileSync(path.join(__dirname, '..', '.clinerules'), 'utf-8'); assert.ok(content.includes('bin/lib') || content.includes('workflows') || content.includes('agents'), '.clinerules should describe project architecture'); }); });