Skip to content

Commit f4e89d9

Browse files
jeremyedergithub-actions[bot]claude
authored
feat: Add automated demo command for AgentReady (#24)
* feat: Add automated demo command for AgentReady Implements P0 feature to showcase AgentReady capabilities with a single command. Features: - agentready demo command creates sample repository and runs assessment - Supports Python (default) and JavaScript demo repositories - Real-time progress indicators with color-coded output (✓/✗/⊘) - Auto-opens HTML report in browser (optional --no-browser flag) - Generates HTML, Markdown, and JSON reports in .agentready-demo/ - Options: --language, --no-browser, --keep-repo Implementation: - Created src/agentready/cli/demo.py with demo command logic - Registered demo command in CLI main.py - Added comprehensive unit tests in tests/unit/test_demo.py - Demo completes in ~3-5 seconds with 25 attribute assessments Perfect for presentations, stakeholder demos, and user onboarding. Closes #1 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Jeremy Eder <jeremyeder@users.noreply.github.com> * fix: install AgentReady from source in CI workflow The workflow was attempting to install agentready from PyPI, but the package has never been published. Changed to install from checked-out repository source using 'pip install -e .' instead. This ensures CI tests the actual code in the PR rather than a potentially stale PyPI version. Fixes GitHub Actions workflow failure on PR #24. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: add manual PyPI publishing workflow Added workflow_dispatch workflow for manual PyPI publishing with: - Dry run mode (publishes to TestPyPI for testing) - Production mode (publishes to PyPI) - Optional version override - Automatic GitHub release creation - Built-in validation with twine check - Secure: Uses environment variables to prevent command injection Usage: 1. Configure TEST_PYPI_TOKEN and PYPI_TOKEN secrets 2. Go to Actions → "Publish to PyPI" → Run workflow 3. Choose dry run (TestPyPI) or production (PyPI) Future enhancement tracked in issue #25 for automated integration with semantic-release workflow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: implement continuous learning loop with LLM-powered skill extraction Add comprehensive learning system that extracts high-quality skills from assessments: - New 'learn' CLI command with heuristic and LLM enrichment modes - Claude API integration for detailed skill analysis and instruction generation - LLM response caching system (7-day TTL) to reduce API costs - Code sampling for real repository examples - Pattern extraction from high-scoring assessment attributes - Support for multiple output formats (JSON, SKILL.md, GitHub issues) Technical additions: - src/agentready/cli/learn.py - Main learning command implementation - src/agentready/learners/ - Pattern extraction and LLM enrichment modules - src/agentready/services/llm_cache.py - LLM response caching - src/agentready/models/discovered_skill.py - Skill data model - tests/unit/learners/ - Unit tests for learning modules - .github/workflows/continuous-learning.yml - CI workflow - .github/CLAUDE_INTEGRATION.md - Integration documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Jeremy Eder <jeremyeder@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
1 parent 24f437f commit f4e89d9

36 files changed

Lines changed: 7888 additions & 17 deletions

.agentready-demo/demo-assessment-20251121-051257.json

Lines changed: 620 additions & 0 deletions
Large diffs are not rendered by default.

.agentready-demo/demo-report-20251121-051257.html

Lines changed: 1890 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,308 @@
1+
# 🤖 AgentReady Assessment Report
2+
3+
| Repository | Branch | Commit | Score | Level | Date |
4+
|------------|--------|--------|-------|-------|------|
5+
| **demo-repo** | main | `87989978` | **73.1/100** | **Silver** | 2025-11-21 05:12 |
6+
7+
---
8+
9+
## 📊 Summary
10+
11+
| Metric | Value |
12+
|--------|-------|
13+
| **Overall Score** | **73.1/100** |
14+
| **Certification Level** | **Silver** |
15+
| **Attributes Assessed** | 10/25 |
16+
| **Attributes Skipped** | 15 |
17+
| **Assessment Duration** | 1.8s |
18+
19+
### Languages Detected
20+
21+
- **Python**: 4 files
22+
23+
### Repository Stats
24+
25+
- **Total Files**: 7
26+
- **Total Lines**: 100
27+
28+
## 🎖️ Certification Ladder
29+
30+
- 💎 **Platinum** (90-100)
31+
- 🥇 **Gold** (75-89)
32+
- 🥈 **Silver** (60-74) **→ YOUR LEVEL ←**
33+
- 🥉 **Bronze** (40-59)
34+
- ⚠️ **Needs Improvement** (0-39)
35+
36+
## 📋 Detailed Findings
37+
38+
### API Documentation
39+
40+
| Attribute | Tier | Status | Score |
41+
|-----------|------|--------|-------|
42+
| OpenAPI/Swagger Specifications | T3 | ⊘ not_applicable ||
43+
44+
### Build & Development
45+
46+
| Attribute | Tier | Status | Score |
47+
|-----------|------|--------|-------|
48+
| One-Command Build/Setup | T2 | ⊘ not_applicable ||
49+
| Container/Virtualization Setup | T4 | ⊘ not_applicable ||
50+
51+
### Code Quality
52+
53+
| Attribute | Tier | Status | Score |
54+
|-----------|------|--------|-------|
55+
| Type Annotations | T1 | ✅ pass | 100 |
56+
| Cyclomatic Complexity Thresholds | T3 | ✅ pass | 100 |
57+
| Code Smell Elimination | T4 | ⊘ not_applicable ||
58+
59+
### Context Window Optimization
60+
61+
| Attribute | Tier | Status | Score |
62+
|-----------|------|--------|-------|
63+
| CLAUDE.md Configuration Files | T1 | ✅ pass | 100 |
64+
| Concise Structured Documentation | T2 | ⊘ not_applicable ||
65+
| File Size Limits | T2 | ⊘ not_applicable ||
66+
67+
### Dependency Management
68+
69+
| Attribute | Tier | Status | Score |
70+
|-----------|------|--------|-------|
71+
| Lock Files for Reproducibility | T1 | ❌ fail | 0 |
72+
| Dependency Freshness & Security | T2 | ⊘ not_applicable ||
73+
74+
#### ❌ Lock Files for Reproducibility
75+
76+
**Measured**: none (Threshold: at least one lock file)
77+
78+
**Evidence**:
79+
- No lock files found
80+
81+
<details><summary><strong>📝 Remediation Steps</strong></summary>
82+
83+
84+
Add lock file for dependency reproducibility
85+
86+
1. Use npm install, poetry lock, or equivalent to generate lock file
87+
88+
**Commands**:
89+
90+
```bash
91+
npm install # generates package-lock.json
92+
```
93+
94+
</details>
95+
96+
### Documentation Standards
97+
98+
| Attribute | Tier | Status | Score |
99+
|-----------|------|--------|-------|
100+
| README Structure | T1 | ✅ pass | 100 |
101+
| Inline Documentation | T2 | ⊘ not_applicable ||
102+
| Architecture Decision Records | T3 | ⊘ not_applicable ||
103+
104+
### Error Handling
105+
106+
| Attribute | Tier | Status | Score |
107+
|-----------|------|--------|-------|
108+
| Structured Logging | T3 | ⊘ not_applicable ||
109+
110+
### Git & Version Control
111+
112+
| Attribute | Tier | Status | Score |
113+
|-----------|------|--------|-------|
114+
| Conventional Commit Messages | T2 | ❌ fail | 0 |
115+
| .gitignore Completeness | T2 | ✅ pass | 100 |
116+
| Issue & Pull Request Templates | T4 | ⊘ not_applicable ||
117+
118+
#### ❌ Conventional Commit Messages
119+
120+
**Measured**: not configured (Threshold: configured)
121+
122+
**Evidence**:
123+
- No commitlint or husky configuration
124+
125+
<details><summary><strong>📝 Remediation Steps</strong></summary>
126+
127+
128+
Configure conventional commits with commitlint
129+
130+
1. Install commitlint
131+
2. Configure husky for commit-msg hook
132+
133+
**Commands**:
134+
135+
```bash
136+
npm install --save-dev @commitlint/cli @commitlint/config-conventional husky
137+
```
138+
139+
</details>
140+
141+
### Modularity
142+
143+
| Attribute | Tier | Status | Score |
144+
|-----------|------|--------|-------|
145+
| Semantic File & Directory Naming | T3 | ⊘ not_applicable ||
146+
147+
### Performance
148+
149+
| Attribute | Tier | Status | Score |
150+
|-----------|------|--------|-------|
151+
| Performance Benchmarks | T4 | ⊘ not_applicable ||
152+
153+
### Repository Structure
154+
155+
| Attribute | Tier | Status | Score |
156+
|-----------|------|--------|-------|
157+
| Standard Project Layouts | T1 | ✅ pass | 100 |
158+
| Separation of Concerns | T2 | ⊘ not_applicable ||
159+
160+
### Security
161+
162+
| Attribute | Tier | Status | Score |
163+
|-----------|------|--------|-------|
164+
| Security Scanning Automation | T4 | ⊘ not_applicable ||
165+
166+
### Testing & CI/CD
167+
168+
| Attribute | Tier | Status | Score |
169+
|-----------|------|--------|-------|
170+
| Test Coverage Requirements | T2 | ❌ fail | 50 |
171+
| Pre-commit Hooks & CI/CD Linting | T2 | ❌ fail | 0 |
172+
173+
#### ❌ Test Coverage Requirements
174+
175+
**Measured**: not configured (Threshold: configured with >80% threshold)
176+
177+
**Evidence**:
178+
- Coverage config: ✓
179+
- pytest-cov: ✗
180+
181+
<details><summary><strong>📝 Remediation Steps</strong></summary>
182+
183+
184+
Configure test coverage with ≥80% threshold
185+
186+
1. Install coverage tool (pytest-cov for Python, jest for JavaScript)
187+
2. Configure coverage threshold in project config
188+
3. Add coverage reporting to CI/CD pipeline
189+
4. Run coverage locally before committing
190+
191+
**Commands**:
192+
193+
```bash
194+
# Python
195+
pip install pytest-cov
196+
pytest --cov=src --cov-report=term-missing --cov-fail-under=80
197+
198+
# JavaScript
199+
npm install --save-dev jest
200+
npm test -- --coverage --coverageThreshold='{\'global\': {\'lines\': 80}}'
201+
```
202+
203+
**Examples**:
204+
205+
```
206+
# Python - pyproject.toml
207+
[tool.pytest.ini_options]
208+
addopts = "--cov=src --cov-report=term-missing"
209+
210+
[tool.coverage.report]
211+
fail_under = 80
212+
213+
```
214+
```
215+
// JavaScript - package.json
216+
{
217+
"jest": {
218+
"coverageThreshold": {
219+
"global": {
220+
"lines": 80,
221+
"statements": 80,
222+
"functions": 80,
223+
"branches": 80
224+
}
225+
}
226+
}
227+
}
228+
229+
```
230+
231+
</details>
232+
233+
#### ❌ Pre-commit Hooks & CI/CD Linting
234+
235+
**Measured**: not configured (Threshold: configured)
236+
237+
**Evidence**:
238+
- .pre-commit-config.yaml not found
239+
240+
<details><summary><strong>📝 Remediation Steps</strong></summary>
241+
242+
243+
Configure pre-commit hooks for automated code quality checks
244+
245+
1. Install pre-commit framework
246+
2. Create .pre-commit-config.yaml
247+
3. Add hooks for linting and formatting
248+
4. Install hooks: pre-commit install
249+
5. Run on all files: pre-commit run --all-files
250+
251+
**Commands**:
252+
253+
```bash
254+
pip install pre-commit
255+
pre-commit install
256+
pre-commit run --all-files
257+
```
258+
259+
**Examples**:
260+
261+
```
262+
# .pre-commit-config.yaml
263+
repos:
264+
- repo: https://github.com/pre-commit/pre-commit-hooks
265+
rev: v4.4.0
266+
hooks:
267+
- id: trailing-whitespace
268+
- id: end-of-file-fixer
269+
- id: check-yaml
270+
- id: check-added-large-files
271+
272+
- repo: https://github.com/psf/black
273+
rev: 23.3.0
274+
hooks:
275+
- id: black
276+
277+
- repo: https://github.com/pycqa/isort
278+
rev: 5.12.0
279+
hooks:
280+
- id: isort
281+
282+
```
283+
284+
</details>
285+
286+
## 🎯 Next Steps
287+
288+
**Priority Improvements** (highest impact first):
289+
290+
1. **Lock Files for Reproducibility** (Tier 1) - +10.0 points potential
291+
- Add lock file for dependency reproducibility
292+
2. **Pre-commit Hooks & CI/CD Linting** (Tier 2) - +3.0 points potential
293+
- Configure pre-commit hooks for automated code quality checks
294+
3. **Conventional Commit Messages** (Tier 2) - +3.0 points potential
295+
- Configure conventional commits with commitlint
296+
4. **Test Coverage Requirements** (Tier 2) - +3.0 points potential
297+
- Configure test coverage with ≥80% threshold
298+
299+
---
300+
301+
## 📝 Assessment Metadata
302+
303+
- **Tool Version**: AgentReady v1.0.0
304+
- **Research Report**: Bundled version
305+
- **Repository Snapshot**: 8798997839b602cbb3f02073ca66ed95abc6cdda
306+
- **Assessment Duration**: 1.8s
307+
308+
🤖 Generated with [Claude Code](https://claude.com/claude-code)

0 commit comments

Comments
 (0)