fraim-framework 1.0.12 → 2.0.2
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/.ai-agents/agent-guardrails.md +58 -0
- package/.ai-agents/mcp-template.jsonc +34 -0
- package/.ai-agents/rules/agent-testing-guidelines.md +545 -0
- package/.ai-agents/rules/architecture.md +52 -0
- package/.ai-agents/rules/communication.md +122 -0
- package/.ai-agents/rules/continuous-learning.md +55 -0
- package/.ai-agents/rules/git-safe-commands.md +34 -0
- package/.ai-agents/rules/integrity-and-test-ethics.md +223 -0
- package/.ai-agents/rules/local-development.md +252 -0
- package/.ai-agents/rules/merge-requirements.md +231 -0
- package/.ai-agents/rules/pr-workflow-completeness.md +191 -0
- package/.ai-agents/rules/simplicity.md +112 -0
- package/.ai-agents/rules/software-development-lifecycle.md +276 -0
- package/.ai-agents/rules/spike-first-development.md +199 -0
- package/.ai-agents/rules/successful-debugging-patterns.md +313 -0
- package/.ai-agents/scripts/cleanup-branch.ts +278 -0
- package/.ai-agents/scripts/exec-with-timeout.ts +122 -0
- package/.ai-agents/scripts/prep-issue.sh +162 -0
- package/.ai-agents/templates/evidence/Design-Evidence.md +30 -0
- package/.ai-agents/templates/evidence/Implementation-BugEvidence.md +48 -0
- package/.ai-agents/templates/evidence/Implementation-FeatureEvidence.md +54 -0
- package/.ai-agents/templates/evidence/Spec-Evidence.md +19 -0
- package/.ai-agents/templates/help/HelpNeeded.md +14 -0
- package/.ai-agents/templates/retrospective/RETROSPECTIVE-TEMPLATE.md +55 -0
- package/.ai-agents/templates/specs/BUGSPEC-TEMPLATE.md +37 -0
- package/.ai-agents/templates/specs/FEATURESPEC-TEMPLATE.md +29 -0
- package/.ai-agents/templates/specs/TECHSPEC-TEMPLATE.md +39 -0
- package/.ai-agents/workflows/design.md +121 -0
- package/.ai-agents/workflows/implement.md +170 -0
- package/.ai-agents/workflows/resolve.md +152 -0
- package/.ai-agents/workflows/retrospect.md +84 -0
- package/.ai-agents/workflows/spec.md +103 -0
- package/.ai-agents/workflows/test.md +90 -0
- package/.cursor/rules/cursor-rules.mdc +8 -0
- package/.cursor/rules/design.mdc +4 -0
- package/.cursor/rules/implement.mdc +6 -0
- package/.cursor/rules/resolve.mdc +5 -0
- package/.cursor/rules/retrospect.mdc +4 -0
- package/.cursor/rules/spec.mdc +4 -0
- package/.cursor/rules/test.mdc +5 -0
- package/.windsurf/rules/windsurf-rules.md +7 -0
- package/.windsurf/workflows/resolve-issue.md +6 -0
- package/.windsurf/workflows/retrospect.md +6 -0
- package/.windsurf/workflows/start-design.md +6 -0
- package/.windsurf/workflows/start-impl.md +6 -0
- package/.windsurf/workflows/start-spec.md +6 -0
- package/.windsurf/workflows/start-tests.md +6 -0
- package/CHANGELOG.md +66 -0
- package/CODEOWNERS +24 -0
- package/DISTRIBUTION.md +6 -6
- package/PUBLISH_INSTRUCTIONS.md +93 -0
- package/README.md +330 -104
- package/bin/fraim.js +49 -3
- package/index.js +30 -3
- package/install.sh +58 -58
- package/labels.json +52 -0
- package/linkedin-post.md +23 -0
- package/package.json +12 -7
- package/sample_package.json +18 -0
- package/setup.js +733 -384
- package/test-utils.ts +118 -0
- package/tsconfig.json +22 -0
- package/agents/claude/CLAUDE.md +0 -42
- package/agents/cursor/rules/architecture.mdc +0 -49
- package/agents/cursor/rules/continuous-learning.mdc +0 -48
- package/agents/cursor/rules/cursor-workflow.mdc +0 -29
- package/agents/cursor/rules/design.mdc +0 -25
- package/agents/cursor/rules/implement.mdc +0 -26
- package/agents/cursor/rules/local-development.mdc +0 -104
- package/agents/cursor/rules/prep.mdc +0 -15
- package/agents/cursor/rules/resolve.mdc +0 -46
- package/agents/cursor/rules/simplicity.mdc +0 -18
- package/agents/cursor/rules/software-development-lifecycle.mdc +0 -41
- package/agents/cursor/rules/test.mdc +0 -25
- package/agents/windsurf/rules/architecture.md +0 -49
- package/agents/windsurf/rules/continuous-learning.md +0 -47
- package/agents/windsurf/rules/local-development.md +0 -103
- package/agents/windsurf/rules/remote-development.md +0 -22
- package/agents/windsurf/rules/simplicity.md +0 -17
- package/agents/windsurf/rules/windsurf-workflow.md +0 -28
- package/agents/windsurf/workflows/prep.md +0 -20
- package/agents/windsurf/workflows/resolve-issue.md +0 -47
- package/agents/windsurf/workflows/start-design.md +0 -26
- package/agents/windsurf/workflows/start-impl.md +0 -27
- package/agents/windsurf/workflows/start-tests.md +0 -26
- package/github/phase-change.yml +0 -218
- package/github/status-change.yml +0 -68
- package/github/sync-on-pr-review.yml +0 -66
- package/scripts/__init__.py +0 -10
- package/scripts/cli.py +0 -141
- package/setup.py +0 -0
- package/test-config.json +0 -32
- package/workflows/setup-fraim.yml +0 -147
package/install.sh
CHANGED
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# FRAIM One-Line Installer
|
|
4
|
-
# Framework for Rigor-based AI Management
|
|
5
|
-
# Where humans become AI managers through rigorous methodology
|
|
6
|
-
|
|
7
|
-
set -e
|
|
8
|
-
|
|
9
|
-
# Colors for output
|
|
10
|
-
RED='\033[0;31m'
|
|
11
|
-
GREEN='\033[0;32m'
|
|
12
|
-
YELLOW='\033[1;33m'
|
|
13
|
-
BLUE='\033[0;34m'
|
|
14
|
-
NC='\033[0m' # No Color
|
|
15
|
-
|
|
16
|
-
# Banner
|
|
17
|
-
echo -e "${BLUE}"
|
|
18
|
-
cat << 'EOF'
|
|
19
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
20
|
-
║ 🚀 FRAIM ║
|
|
21
|
-
║ Framework for Rigor-based AI Management ║
|
|
22
|
-
║ Where humans become AI managers ║
|
|
23
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
24
|
-
EOF
|
|
25
|
-
echo -e "${NC}"
|
|
26
|
-
|
|
27
|
-
echo -e "${GREEN}🤖 Welcome to FRAIM!${NC}"
|
|
28
|
-
echo -e "${GREEN}Where humans become AI managers through rigorous methodology${NC}\n"
|
|
29
|
-
|
|
30
|
-
# Check if we're in a git repository
|
|
31
|
-
if [ ! -d ".git" ]; then
|
|
32
|
-
echo -e "${RED}❌ Error: Not in a git repository${NC}"
|
|
33
|
-
echo "Please run this script from within a git repository."
|
|
34
|
-
exit 1
|
|
35
|
-
fi
|
|
36
|
-
|
|
37
|
-
# Check if FRAIM is already installed
|
|
38
|
-
if [ -d "FRAIM" ]; then
|
|
39
|
-
echo -e "${YELLOW}⚠️ FRAIM appears to already be installed in this repository${NC}"
|
|
40
|
-
echo "If you want to reinstall, please remove the existing FRAIM folder first."
|
|
41
|
-
exit 1
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
echo -e "${BLUE}📥 Installing FRAIM framework...${NC}"
|
|
45
|
-
|
|
46
|
-
# Download FRAIM from GitHub
|
|
47
|
-
echo "Downloading FRAIM framework..."
|
|
48
|
-
curl -sSL https://raw.githubusercontent.com/mathursrus/
|
|
49
|
-
|
|
50
|
-
echo -e "\n${GREEN}✅ FRAIM installation complete!${NC}"
|
|
51
|
-
echo -e "\n${BLUE}🚀 Next steps:${NC}"
|
|
52
|
-
echo "1. Review the FRAIM folder that was created"
|
|
53
|
-
echo "2. Run: npx @fraim/framework init"
|
|
54
|
-
echo "3. Start managing your AI agents with RIGOR methodology!"
|
|
55
|
-
echo -e "\n${BLUE}📚 Learn more:${NC}"
|
|
56
|
-
echo "Documentation: https://github.com/mathursrus/
|
|
57
|
-
echo -e "\n${GREEN}🎯 Ready to become an AI manager?${NC}"
|
|
58
|
-
echo "The FRAIM framework is now installed and ready to use!"
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# FRAIM One-Line Installer
|
|
4
|
+
# Framework for Rigor-based AI Management
|
|
5
|
+
# Where humans become AI managers through rigorous methodology
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
# Colors for output
|
|
10
|
+
RED='\033[0;31m'
|
|
11
|
+
GREEN='\033[0;32m'
|
|
12
|
+
YELLOW='\033[1;33m'
|
|
13
|
+
BLUE='\033[0;34m'
|
|
14
|
+
NC='\033[0m' # No Color
|
|
15
|
+
|
|
16
|
+
# Banner
|
|
17
|
+
echo -e "${BLUE}"
|
|
18
|
+
cat << 'EOF'
|
|
19
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
20
|
+
║ 🚀 FRAIM ║
|
|
21
|
+
║ Framework for Rigor-based AI Management ║
|
|
22
|
+
║ Where humans become AI managers ║
|
|
23
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
24
|
+
EOF
|
|
25
|
+
echo -e "${NC}"
|
|
26
|
+
|
|
27
|
+
echo -e "${GREEN}🤖 Welcome to FRAIM!${NC}"
|
|
28
|
+
echo -e "${GREEN}Where humans become AI managers through rigorous methodology${NC}\n"
|
|
29
|
+
|
|
30
|
+
# Check if we're in a git repository
|
|
31
|
+
if [ ! -d ".git" ]; then
|
|
32
|
+
echo -e "${RED}❌ Error: Not in a git repository${NC}"
|
|
33
|
+
echo "Please run this script from within a git repository."
|
|
34
|
+
exit 1
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Check if FRAIM is already installed
|
|
38
|
+
if [ -d "FRAIM" ]; then
|
|
39
|
+
echo -e "${YELLOW}⚠️ FRAIM appears to already be installed in this repository${NC}"
|
|
40
|
+
echo "If you want to reinstall, please remove the existing FRAIM folder first."
|
|
41
|
+
exit 1
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo -e "${BLUE}📥 Installing FRAIM framework...${NC}"
|
|
45
|
+
|
|
46
|
+
# Download FRAIM from GitHub
|
|
47
|
+
echo "Downloading FRAIM framework..."
|
|
48
|
+
curl -sSL https://raw.githubusercontent.com/mathursrus/FRAIM/master/install.sh | bash -s -- --repo $(git remote get-url origin | sed 's/.*github.com[:/]\([^/]*\/[^/]*\).*/\1/' | sed 's/\.git$//')
|
|
49
|
+
|
|
50
|
+
echo -e "\n${GREEN}✅ FRAIM installation complete!${NC}"
|
|
51
|
+
echo -e "\n${BLUE}🚀 Next steps:${NC}"
|
|
52
|
+
echo "1. Review the FRAIM folder that was created"
|
|
53
|
+
echo "2. Run: npx @fraim/framework init"
|
|
54
|
+
echo "3. Start managing your AI agents with RIGOR methodology!"
|
|
55
|
+
echo -e "\n${BLUE}📚 Learn more:${NC}"
|
|
56
|
+
echo "Documentation: https://github.com/mathursrus/FRAIM"
|
|
57
|
+
echo -e "\n${GREEN}🎯 Ready to become an AI manager?${NC}"
|
|
58
|
+
echo "The FRAIM framework is now installed and ready to use!"
|
package/labels.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "phase:spec",
|
|
4
|
+
"color": "008672",
|
|
5
|
+
"description": "Specification creation phase"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"name": "phase:design",
|
|
9
|
+
"color": "0075ca",
|
|
10
|
+
"description": "Design and RFC creation phase"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "phase:impl",
|
|
14
|
+
"color": "7057ff",
|
|
15
|
+
"description": "Implementation and development phase"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "phase:tests",
|
|
19
|
+
"color": "008672",
|
|
20
|
+
"description": "Testing and validation phase"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "status:wip",
|
|
24
|
+
"color": "fbca04",
|
|
25
|
+
"description": "Work in progress"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "status:needs-review",
|
|
29
|
+
"color": "fbca04",
|
|
30
|
+
"description": "Ready for review"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"name": "status:complete",
|
|
34
|
+
"color": "0e8a16",
|
|
35
|
+
"description": "Work completed"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name": "ai-agent:cursor",
|
|
39
|
+
"color": "c5def5",
|
|
40
|
+
"description": "Assigned to Cursor"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "ai-agent:claude",
|
|
44
|
+
"color": "c5def5",
|
|
45
|
+
"description": "Assigned to Claude"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "ai-agent:windsurf",
|
|
49
|
+
"color": "c5def5",
|
|
50
|
+
"description": "Assigned to Windsurf"
|
|
51
|
+
}
|
|
52
|
+
]
|
package/linkedin-post.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# FRAIMv2 - The Future of how we work with AI?
|
|
2
|
+
|
|
3
|
+
🚀 **AI coding agents are brilliant but chaotic.**
|
|
4
|
+
|
|
5
|
+
They can build prototypes fast, but fail spectacularly at production-ready code.
|
|
6
|
+
|
|
7
|
+
**Solution: Manage them like human developers.**
|
|
8
|
+
|
|
9
|
+
FRAIMv2 applies enterprise-grade discipline to AI agent teams:
|
|
10
|
+
• Clear guardrails to prevent costly mistakes
|
|
11
|
+
• Structured workflows to avoid chaos
|
|
12
|
+
• Evidence-based validation (not "looks good" claims)
|
|
13
|
+
• Learning systems to improve over time
|
|
14
|
+
• Debugging patterns and anti-patterns
|
|
15
|
+
• Balance between determinism and creativity
|
|
16
|
+
|
|
17
|
+
**Result:** Transform from solo developer to AI manager orchestrating production-ready code.
|
|
18
|
+
|
|
19
|
+
Is this the future of how we work?
|
|
20
|
+
|
|
21
|
+
Ready to transform how you work with AI? Check out FRAIM: https://github.com/mathursrus/FRAIM
|
|
22
|
+
|
|
23
|
+
#AI #SoftwareDevelopment #Productivity #Innovation #TechLeadership #Coding #Agile #DevOps
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fraim-framework",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "FRAIM: Framework for Rigor-based AI Management -
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"description": "FRAIM v2: Framework for Rigor-based AI Management - Transform from solo developer to AI manager orchestrating production-ready code with enterprise-grade discipline",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"fraim": "./bin/fraim.js",
|
|
@@ -10,12 +10,11 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"setup": "node setup.js",
|
|
12
12
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
13
|
-
"postinstall": "echo '🚀 FRAIM installed! Run:
|
|
13
|
+
"postinstall": "echo '🚀 FRAIM v2 installed! Run: fraim --help'"
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": "git+https://github.com/mathursrus/
|
|
18
|
-
"directory": "FRAIM"
|
|
17
|
+
"url": "git+https://github.com/mathursrus/FRAIM.git"
|
|
19
18
|
},
|
|
20
19
|
"keywords": [
|
|
21
20
|
"fraim",
|
|
@@ -38,12 +37,18 @@
|
|
|
38
37
|
"author": "Sid Mathur <sid.mathur@gmail.com>",
|
|
39
38
|
"license": "MIT",
|
|
40
39
|
"bugs": {
|
|
41
|
-
"url": "https://github.com/mathursrus/
|
|
40
|
+
"url": "https://github.com/mathursrus/FRAIM/issues"
|
|
42
41
|
},
|
|
43
|
-
"homepage": "https://github.com/mathursrus/
|
|
42
|
+
"homepage": "https://github.com/mathursrus/FRAIM#readme",
|
|
44
43
|
"engines": {
|
|
45
44
|
"node": ">=16.0.0"
|
|
46
45
|
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"typescript": "^5.0.0",
|
|
48
|
+
"@types/node": "^20.0.0",
|
|
49
|
+
"tsx": "^4.0.0",
|
|
50
|
+
"dotenv": "^16.0.0"
|
|
51
|
+
},
|
|
47
52
|
"publishConfig": {
|
|
48
53
|
"access": "public"
|
|
49
54
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scripts": {
|
|
3
|
+
"build": "tsc",
|
|
4
|
+
"dev": "npx tsx --watch src/server.ts > server.log 2>&1",
|
|
5
|
+
"test": "set EXCLUDE_TAGS=baml,flaky,failing&& npx tsx --test --test-concurrency=1 --test-reporter tap %npm_config_test% > test.log 2>&1",
|
|
6
|
+
"test-smoke": "set TAGS=smoke&& npx tsx --test --test-concurrency=1 --test-reporter tap %npm_config_test% > test.log 2>&1",
|
|
7
|
+
"test-smoke-ci": "set TAGS=smoke&& npx tsx --test --test-concurrency=1 --test-reporter tap test*.ts",
|
|
8
|
+
"test-flaky": "set TAGS=flaky&& npx tsx --test --test-concurrency=1 --test-reporter tap %npm_config_test% > test.log 2>&1",
|
|
9
|
+
"test-failing": "set TAGS=failing&& npx tsx --test --test-concurrency=1 --test-reporter tap %npm_config_test% > test.log 2>&1",
|
|
10
|
+
"test-baml": "set TAGS=baml&& npx tsx --test --test-concurrency=1 --test-reporter tap %npm_config_test% > test.log 2>&1",
|
|
11
|
+
"test-all": "tsx --test --test-concurrency=1 --test-reporter tap",
|
|
12
|
+
"test-all-ci": "set EXCLUDE_TAGS=flaky,failing&& tsx --test --test-concurrency=1 --test-reporter tap test*.ts",
|
|
13
|
+
"generate": "baml-cli generate",
|
|
14
|
+
"lint": "eslint *.ts",
|
|
15
|
+
"lint:fix": "eslint *.ts --fix"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|