ai-developer-skill-os 7.0.2 → 7.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/AGENTS.md +44 -88
- package/.agents/CHANGELOG.md +70 -0
- package/.agents/LICENSE +21 -0
- package/.agents/README.md +100 -0
- package/.agents/docs/CHI_TIET_SKILLS.md +126 -0
- package/.agents/docs/GOVERNANCE.md +40 -0
- package/.agents/docs/HUONG_DAN_SU_DUNG.md +120 -0
- package/.agents/docs/SPEC.md +87 -0
- package/.agents/docs/adr/0001-intent-based-architecture.md +19 -0
- package/.agents/docs/adr/0002-kernel-freeze.md +21 -0
- package/.agents/docs/adr/0003-risk-based-verification.md +20 -0
- package/.agents/docs/adr/0004-progressive-evidence.md +19 -0
- package/.agents/docs/skill-classification.md +25 -0
- package/.agents/skills/qk-access-policy/SKILL.md +179 -0
- package/.agents/skills/qk-ai-builder/SKILL.md +215 -0
- package/.agents/skills/qk-api-lifecycle/SKILL.md +176 -0
- package/.agents/skills/qk-bug-resolution/SKILL.md +307 -0
- package/.agents/skills/qk-context-loader/SKILL.md +218 -0
- package/.agents/skills/qk-data-lifecycle/SKILL.md +192 -0
- package/.agents/skills/qk-db-optimizer/SKILL.md +196 -0
- package/.agents/skills/qk-docs/SKILL.md +198 -0
- package/.agents/skills/qk-engineering-standard/SKILL.md +351 -0
- package/.agents/skills/qk-engineering-standard/rules/backend.md +122 -0
- package/.agents/skills/qk-engineering-standard/rules/database.md +3 -0
- package/.agents/skills/qk-engineering-standard/rules/frontend.md +152 -0
- package/.agents/skills/qk-engineering-standard/rules/security.md +3 -0
- package/.agents/skills/qk-engineering-standard/rules/testing.md +3 -0
- package/.agents/skills/qk-fe-api-integration/SKILL.md +326 -0
- package/.agents/skills/qk-feature-delivery/SKILL.md +305 -0
- package/.agents/skills/qk-help/SKILL.md +193 -0
- package/.agents/skills/qk-orchestrator/SKILL.md +278 -0
- package/.agents/skills/qk-orchestrator/references/routing-table.md +78 -0
- package/.agents/skills/qk-production-release/SKILL.md +284 -0
- package/.agents/skills/qk-project-bootstrap/SKILL.md +235 -0
- package/.agents/skills/qk-project-health/SKILL.md +199 -0
- package/.agents/skills/qk-project-memory/SKILL.md +218 -0
- package/.agents/skills/qk-system-evolution/SKILL.md +281 -0
- package/.agents/skills/qk-ui-audit/SKILL.md +315 -0
- package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
- package/.agents/skills/qk-ui-builder/SKILL.md +446 -0
- package/.agents/skills/qk-ui-builder/references/anti-patterns.md +295 -0
- package/.agents/skills/qk-ui-builder/references/color.md +115 -0
- package/.agents/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
- package/.agents/skills/qk-ui-builder/references/copy.md +250 -0
- package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
- package/.agents/skills/qk-ui-builder/references/layout-and-space.md +111 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
- package/.agents/skills/qk-ui-builder/references/macrostructures.md +38 -0
- package/.agents/skills/qk-ui-builder/references/motion.md +95 -0
- package/.agents/skills/qk-ui-builder/references/responsive.md +115 -0
- package/.agents/skills/qk-ui-builder/references/slop-test.md +135 -0
- package/.agents/skills/qk-ui-builder/references/structure.md +280 -0
- package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
- package/.agents/skills/qk-ui-builder/references/themes/carnival.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/editorial.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/garden.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/hum.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/lumen.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/midnight.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/playful.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/specimen.md +52 -0
- package/.agents/skills/qk-ui-builder/references/themes/terminal.md +52 -0
- package/.agents/skills/qk-ui-builder/references/typography.md +129 -0
- package/.agents/skills/qk-ui-system-builder/SKILL.md +221 -0
- package/.agents/skills/qk-validation-gate/SKILL.md +359 -0
- package/.agents/skills.json +819 -0
- package/.github/workflows/ci.yml +1 -1
- package/CHANGELOG.md +2 -1
- package/CLAUDE.md +110 -0
- package/README.md +52 -10
- package/add_lang.js +21 -0
- package/add_lang.py +25 -0
- package/add_sections.py +53 -0
- package/bin/install.js +225 -170
- package/bin/lint.js +123 -0
- package/docs/CHI_TIET_SKILLS.md +27 -26
- package/docs/HUONG_DAN_SU_DUNG.md +3 -3
- package/docs/SPEC.md +70 -20
- package/framework/decision-primitives.md +2 -1
- package/framework/skill-schema.md +310 -0
- package/package.json +16 -5
- package/patch.js +15 -0
- package/patch.py +89 -0
- package/patch2.py +83 -0
- package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-api-integration/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-auth-security/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-component-generator/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-context-manager/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-deployment/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-design-system/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-form-builder/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-help/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-migration/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-project-audit/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-refactor/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-state-management/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +1 -0
- package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +1 -0
- package/skills/_template/SKILL.md +239 -0
- package/skills/qk-access-policy/SKILL.md +180 -39
- package/skills/qk-ai-builder/SKILL.md +216 -40
- package/skills/qk-api-lifecycle/SKILL.md +177 -46
- package/skills/qk-bug-resolution/SKILL.md +308 -46
- package/skills/qk-context-loader/SKILL.md +219 -43
- package/skills/qk-data-lifecycle/SKILL.md +193 -44
- package/skills/qk-db-optimizer/SKILL.md +197 -41
- package/skills/qk-docs/SKILL.md +199 -40
- package/skills/qk-engineering-standard/SKILL.md +352 -42
- package/skills/qk-fe-api-integration/SKILL.md +327 -55
- package/skills/qk-feature-delivery/SKILL.md +306 -48
- package/skills/qk-help/SKILL.md +179 -23
- package/skills/qk-orchestrator/SKILL.md +279 -42
- package/skills/qk-orchestrator/references/routing-table.md +78 -0
- package/skills/qk-production-release/SKILL.md +285 -41
- package/skills/qk-project-bootstrap/SKILL.md +236 -38
- package/skills/qk-project-health/SKILL.md +200 -40
- package/skills/qk-project-memory/SKILL.md +219 -40
- package/skills/qk-system-evolution/SKILL.md +282 -40
- package/skills/qk-ui-audit/SKILL.md +316 -42
- package/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
- package/skills/qk-ui-builder/SKILL.md +447 -0
- package/skills/qk-ui-builder/references/anti-patterns.md +295 -0
- package/skills/qk-ui-builder/references/color.md +115 -0
- package/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
- package/skills/qk-ui-builder/references/copy.md +250 -0
- package/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
- package/skills/qk-ui-builder/references/layout-and-space.md +111 -0
- package/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
- package/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
- package/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
- package/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
- package/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
- package/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
- package/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
- package/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
- package/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
- package/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
- package/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
- package/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
- package/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
- package/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
- package/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
- package/skills/qk-ui-builder/references/macrostructures.md +38 -0
- package/skills/qk-ui-builder/references/motion.md +95 -0
- package/skills/qk-ui-builder/references/responsive.md +115 -0
- package/skills/qk-ui-builder/references/slop-test.md +135 -0
- package/skills/qk-ui-builder/references/structure.md +280 -0
- package/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
- package/skills/qk-ui-builder/references/themes/carnival.md +52 -0
- package/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
- package/skills/qk-ui-builder/references/themes/editorial.md +52 -0
- package/skills/qk-ui-builder/references/themes/garden.md +52 -0
- package/skills/qk-ui-builder/references/themes/hum.md +52 -0
- package/skills/qk-ui-builder/references/themes/lumen.md +52 -0
- package/skills/qk-ui-builder/references/themes/midnight.md +52 -0
- package/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
- package/skills/qk-ui-builder/references/themes/playful.md +52 -0
- package/skills/qk-ui-builder/references/themes/specimen.md +52 -0
- package/skills/qk-ui-builder/references/themes/terminal.md +52 -0
- package/skills/qk-ui-builder/references/typography.md +129 -0
- package/skills/qk-ui-system-builder/SKILL.md +222 -43
- package/skills/qk-validation-gate/SKILL.md +360 -40
- package/skills.json +815 -825
- package/specs/fixtures/user-payload.json +12 -0
- package/specs/regressions/api-integration-null-fields.yaml +19 -0
- package/temp_fix.js +61 -0
- package/tests/registry.test.js +1 -1
- package/update_template.js +28 -0
- package/skills/qk-design-to-code/SKILL.md +0 -46
- package/skills/qk-policy-engine/SKILL.md +0 -39
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "user_payload_001",
|
|
3
|
+
"name": "John Doe",
|
|
4
|
+
"email": "john@example.com",
|
|
5
|
+
"role": "admin",
|
|
6
|
+
"created_at": "2026-01-15T08:00:00Z",
|
|
7
|
+
"profile": {
|
|
8
|
+
"avatar": "https://example.com/avatar.jpg",
|
|
9
|
+
"bio": "Software engineer"
|
|
10
|
+
},
|
|
11
|
+
"permissions": ["read", "write", "delete"]
|
|
12
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
scenario_id: fe-api-integration-null-fields
|
|
2
|
+
description: "Ensure qk-fe-api-integration handles null fields gracefully without crashing or hallucinating"
|
|
3
|
+
expected_behavior: qk-fe-api-integration
|
|
4
|
+
|
|
5
|
+
given:
|
|
6
|
+
- skill: qk-fe-api-integration
|
|
7
|
+
- fixture: specs/fixtures/user-payload.json
|
|
8
|
+
- context: Project uses Axios wrapper at src/api/axiosInstance.ts
|
|
9
|
+
|
|
10
|
+
when:
|
|
11
|
+
- Parse JSON payload with nullable fields (profile, avatar)
|
|
12
|
+
- Generate TypeScript interfaces with optional (?:) markers
|
|
13
|
+
- Implement service layer with error boundary
|
|
14
|
+
|
|
15
|
+
then:
|
|
16
|
+
- No hallucinated fields outside the provided JSON
|
|
17
|
+
- Nullable fields are marked as optional in generated types
|
|
18
|
+
- Loading, Success, and Error states are all implemented
|
|
19
|
+
- No hardcoded URLs in generated component code
|
package/temp_fix.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
let content = fs.readFileSync('bin/install.js', 'utf8');
|
|
3
|
+
|
|
4
|
+
const replacement = \// Parse command line arguments for CI/CD automation
|
|
5
|
+
const args = process.argv.slice(2);
|
|
6
|
+
let autoIde = null;
|
|
7
|
+
let autoScope = null;
|
|
8
|
+
|
|
9
|
+
for (let i = 0; i < args.length; i++) {
|
|
10
|
+
if (args[i].startsWith('--ide=')) {
|
|
11
|
+
autoIde = args[i].split('=')[1];
|
|
12
|
+
}
|
|
13
|
+
if (args[i].startsWith('--scope=')) {
|
|
14
|
+
autoScope = args[i].split('=')[1];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function runInstallation(ideChoice, scopeChoice) {
|
|
19
|
+
const isGlobal = scopeChoice === '1';\;
|
|
20
|
+
|
|
21
|
+
content = content.replace(/rl\.question\\(questionIde, \\(ideChoice\\) => \\{[\\s\\S]*?const isGlobal = scopeChoice === '1';/, replacement);
|
|
22
|
+
|
|
23
|
+
const endReplacement = \ } catch (error) {
|
|
24
|
+
console.error('? C� l?i x?y ra trong qu� tr�nh c�i d?t:', error.message);
|
|
25
|
+
} finally {
|
|
26
|
+
if (rl) rl.close();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (autoIde && autoScope) {
|
|
31
|
+
console.log('\\n?? Running in non-interactive mode with IDE=' + autoIde + ', Scope=' + autoScope);
|
|
32
|
+
runInstallation(autoIde, autoScope);
|
|
33
|
+
if (rl) rl.close();
|
|
34
|
+
} else {
|
|
35
|
+
rl.question(questionIde, (ideChoice) => {
|
|
36
|
+
if (ideChoice === '0') {
|
|
37
|
+
console.log('? �� b? qua c?u h�nh t? d?ng. Skill OS v?n du?c t?i v?, b?n c� th? t? c?u h�nh file c?a IDE theo thu m?c hi?n t?i.');
|
|
38
|
+
rl.close();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (!['1', '2', '3', '4', '5', '6', '7'].includes(ideChoice)) {
|
|
43
|
+
console.log('? L?a ch?n kh�ng h?p l?. Vui l�ng ch?y l?i script.');
|
|
44
|
+
rl.close();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
rl.question(questionScope, (scopeChoice) => {
|
|
49
|
+
if (!['1', '2'].includes(scopeChoice)) {
|
|
50
|
+
console.log('? L?a ch?n kh�ng h?p l?. M?c d?nh s? c�i Global.');
|
|
51
|
+
scopeChoice = '1';
|
|
52
|
+
}
|
|
53
|
+
runInstallation(ideChoice, scopeChoice);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}\;
|
|
57
|
+
|
|
58
|
+
content = content.replace(/ \\} catch \\(error\\) \\{\\s*console\\.error\\('? C� l?i x?y ra trong qu� tr�nh c�i d?t:', error\\.message\\);\\s*\\} finally \\{\\s*rl\\.close\\(\\);\\s*\\}\\s*\\}\\);\\s*\\}\\);/, endReplacement);
|
|
59
|
+
|
|
60
|
+
fs.writeFileSync('bin/install.js', content);
|
|
61
|
+
console.log('Done');
|
package/tests/registry.test.js
CHANGED
|
@@ -66,7 +66,7 @@ describe('Skill Registry Integrity', () => {
|
|
|
66
66
|
|
|
67
67
|
it('should have correct platforms (no invalid IDE names)', () => {
|
|
68
68
|
const registry = JSON.parse(fs.readFileSync(registryPath, 'utf8'));
|
|
69
|
-
const validPlatforms = ['claude-code', 'cursor', 'windsurf', '
|
|
69
|
+
const validPlatforms = ['antigravity', 'claude-code', 'cursor', 'windsurf', 'kilo-code'];
|
|
70
70
|
registry.skills.forEach(skill => {
|
|
71
71
|
skill.platforms.forEach(p => {
|
|
72
72
|
expect(validPlatforms).toContain(p);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
|
|
3
|
+
const path = 'skills/_template/SKILL.md';
|
|
4
|
+
let content = fs.readFileSync(path, 'utf8');
|
|
5
|
+
|
|
6
|
+
const required_sections = [
|
|
7
|
+
'Goal',
|
|
8
|
+
'Context',
|
|
9
|
+
'Inputs',
|
|
10
|
+
'Chain of Thought',
|
|
11
|
+
'Constraints',
|
|
12
|
+
'Policies',
|
|
13
|
+
'Exit Codes',
|
|
14
|
+
'Confidence Model',
|
|
15
|
+
'Severity',
|
|
16
|
+
'Retry Policy',
|
|
17
|
+
'Escalation Rules'
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
let appends = "\\n";
|
|
21
|
+
for (const section of required_sections) {
|
|
22
|
+
if (!content.includes('## ' + section)) {
|
|
23
|
+
appends += '\\n## ' + section + '\\n[Placeholder for ' + section + ']\\n';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
content += appends;
|
|
28
|
+
fs.writeFileSync(path, content);
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-design-to-code
|
|
3
|
-
category: frontend
|
|
4
|
-
version: 7.0.0
|
|
5
|
-
description: "Chuyển đổi thiết kế từ Figma/Images thành các UI component hoàn chỉnh, chuẩn pixel."
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# qk-design-to-code
|
|
9
|
-
|
|
10
|
-
## Scope
|
|
11
|
-
- Converting Figma/UI designs into pixel-perfect frontend code (Execute)
|
|
12
|
-
- Rejecting generic templates and enforcing bespoke, high-quality aesthetics.
|
|
13
|
-
|
|
14
|
-
## Verbs
|
|
15
|
-
- `[REDESIGN]`: Discard generic UI structure, keep data, and rebuild with strict Hallmark/Open Design principles.
|
|
16
|
-
- `[BUILD]`: Generate UI adhering 100% to `DESIGN.md`.
|
|
17
|
-
|
|
18
|
-
## Constraints
|
|
19
|
-
```yaml
|
|
20
|
-
must:
|
|
21
|
-
- Use the project's existing `DESIGN.md` design system / tokens ONLY
|
|
22
|
-
- Ensure responsive layouts and generous whitespace
|
|
23
|
-
- Include micro-interactions and smooth transitions
|
|
24
|
-
must_not:
|
|
25
|
-
- Hardcode magic numbers for spacing/colors
|
|
26
|
-
- Invent new UI components if existing ones suffice
|
|
27
|
-
- Use generic "AI-slop" aesthetics (e.g., default Tailwind blue/red, cluttered layouts, 1px default borders)
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Policies
|
|
31
|
-
```yaml
|
|
32
|
-
prefer:
|
|
33
|
-
- Semantic HTML elements
|
|
34
|
-
- CSS Grid / Flexbox over absolute positioning
|
|
35
|
-
- High-end aesthetics (glassmorphism, organic shadows, exact typography)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Escalation
|
|
39
|
-
```yaml
|
|
40
|
-
stop:
|
|
41
|
-
- "Design assets or requirements are ambiguous"
|
|
42
|
-
- "DESIGN.md is missing"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Output
|
|
46
|
-
- Frontend components and stylesheets (Anti-Slop compliant)
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qk-policy-engine
|
|
3
|
-
category: security
|
|
4
|
-
version: 7.0.0
|
|
5
|
-
description: "Hệ thống đánh giá chính sách để đảm bảo các hành động an toàn và được ủy quyền."
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# qk-policy-engine
|
|
9
|
-
|
|
10
|
-
## Scope
|
|
11
|
-
- Security policies, authorization rules, and compliance (Evaluate)
|
|
12
|
-
|
|
13
|
-
## Verbs
|
|
14
|
-
- `[AUTHORIZE]`: Evaluate requests against the strict policy matrix.
|
|
15
|
-
|
|
16
|
-
## Constraints
|
|
17
|
-
```yaml
|
|
18
|
-
must:
|
|
19
|
-
- "Enforce Principle of Least Privilege (PoLP) on all operations"
|
|
20
|
-
- "Log all authorization failures for audit purposes"
|
|
21
|
-
must_not:
|
|
22
|
-
- "Bypass security checks for 'admin' or 'dev' accounts in production"
|
|
23
|
-
- "Hardcode plain-text secrets in policy rules"
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Policies
|
|
27
|
-
```yaml
|
|
28
|
-
prefer:
|
|
29
|
-
- "Explicit Deny by default"
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Escalation
|
|
33
|
-
```yaml
|
|
34
|
-
stop:
|
|
35
|
-
- "Policy evaluation fails (Unauthorized Action)"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Output
|
|
39
|
-
- Policy evaluation result (Allow/Deny) and audit trail.
|