Skip to content

Commit 9b5141d

Browse files
committed
feat(SOUL-14): configure VS Code workspace settings
**VS Code Configuration Files:** **settings.json:** - Python interpreter: .venv/bin/python with auto-activation - Testing: pytest with coverage enabled by default - Linting: mypy with strict mode, disabled pylint/flake8 - Formatting: Ruff as default formatter with format-on-save - Editor: 88 char ruler, organize imports on save, tab size 4 - File exclusions: __pycache__, .pytest_cache, .mypy_cache, .ruff_cache - IntelliSense: strict type checking, auto-imports, function parens - PYTHONPATH: src/ directory for imports **extensions.json:** - Recommended extensions: - Python, Pylance, debugpy - Ruff, mypy-type-checker - Markdown tools, YAML, TOML - GitLens, git-graph - Docker, EditorConfig, spell-checker - Unwanted: pylint, flake8 (using Ruff instead) **launch.json (7 debug configurations):** - Python: Current File - Python: Consoul CLI module - Python: Current Test File - Python: All Tests (with/without coverage) - Python: Debug Tests (specific function) - Python: MkDocs Serve **tasks.json (14 tasks):** - Install dependencies - Run tests (default test task) - Lint, lint-fix, format, type-check - Quality check (all checks) - Build package (default build task) - Build/serve documentation - Clean artifacts, pre-commit hooks, update dependencies All tasks use Makefile targets for consistency with CLI workflow. **Pre-commit update:** - Excluded .vscode/ from check-json (VS Code uses JSONC format with comments) Gira: SOUL-14
1 parent 11606a3 commit 9b5141d

29 files changed

Lines changed: 683 additions & 59 deletions

.gira/board/done/SOUL-1.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:35.372675",
3-
"updated_at": "2025-11-08T14:24:51.984259",
3+
"updated_at": "2025-11-09T00:02:44.894207Z",
44
"id": "SOUL-1",
55
"uuid": "678986aa-2c8f-48b9-8996-82c112995020",
66
"title": "Setup Python package structure with src layout",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "high",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-10.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:52.009066",
3-
"updated_at": "2025-11-08T14:57:39.359141",
3+
"updated_at": "2025-11-09T00:02:44.893079Z",
44
"id": "SOUL-10",
55
"uuid": "a730b0af-4a12-47e6-9193-427284639d54",
66
"title": "Create LICENSE and CONTRIBUTING.md",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "medium",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-11.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:53.764882",
3-
"updated_at": "2025-11-08T15:00:29.608066",
3+
"updated_at": "2025-11-09T00:02:44.897138Z",
44
"id": "SOUL-11",
55
"uuid": "218f2359-3af7-4fb3-b1e8-536b6db3bd32",
66
"title": "Setup .gitignore and .editorconfig",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "low",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-12.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:55.460780",
3-
"updated_at": "2025-11-08T15:03:07.833236",
3+
"updated_at": "2025-11-09T00:02:44.896910Z",
44
"id": "SOUL-12",
55
"uuid": "5129f063-7ce3-45a0-aef8-6b2c8abd6169",
66
"title": "Create Makefile/Justfile for common tasks",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "low",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-13.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:57.155034",
3-
"updated_at": "2025-11-08T23:07:41.862648Z",
3+
"updated_at": "2025-11-09T00:02:44.895642Z",
44
"id": "SOUL-13",
55
"uuid": "52345ae7-4551-4f7d-939b-d8207f96fb36",
66
"title": "Setup development environment documentation",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "medium",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-14.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"created_at": "2025-11-08T14:19:58.923807",
3+
"updated_at": "2025-11-09T00:02:44.895424Z",
4+
"id": "SOUL-14",
5+
"uuid": "404741d6-71c3-4044-b1fe-9e7484f45938",
6+
"title": "Configure VS Code workspace settings",
7+
"description": "Create .vscode/ directory with settings.json (Python path, formatters, linters), extensions.json (recommended extensions), and launch.json (debug configurations) for optimal development experience.",
8+
"status": "done",
9+
"type": "task",
10+
"priority": "low",
11+
"labels": [],
12+
"assignee": "jared@goatbytes.io",
13+
"reporter": "jared@goatbytes.io",
14+
"epic_id": "EPIC-001",
15+
"blocked_by": [],
16+
"blocks": [],
17+
"comments": [
18+
{
19+
"created_at": "2025-11-08T15:55:10.853930",
20+
"updated_at": "2025-11-08T15:55:10.853931",
21+
"id": "20251108155510-e5e34222",
22+
"ticket_id": "SOUL-14",
23+
"author": "jared@goatbytes.io",
24+
"content": "Configured VS Code workspace settings:\n\n**settings.json:**\n- Python interpreter: .venv/bin/python\n- Testing: pytest with coverage enabled\n- Linting: mypy with strict mode (disabled pylint/flake8)\n- Formatting: Ruff as default formatter with format-on-save\n- Editor: 88 char ruler, organize imports on save\n- File exclusions: __pycache__, .pytest_cache, .mypy_cache, .ruff_cache\n- IntelliSense: strict type checking, auto-imports\n- PYTHONPATH: src/ directory\n\n**extensions.json:**\n- Recommended: Python, Pylance, Ruff, mypy, Markdown, YAML, TOML, GitLens, EditorConfig\n- Unwanted: pylint, flake8 (using Ruff instead)\n\n**launch.json:**\n- Debug configurations:\n - Current file\n - Consoul CLI module\n - Current test file\n - All tests (with/without coverage)\n - Debug specific test function\n - MkDocs serve\n\n**tasks.json:**\n- Install dependencies\n- Run tests (default test task)\n- Lint, format, type-check\n- Quality check (all)\n- Build package (default build task)\n- Build/serve documentation\n- Clean artifacts\n- Pre-commit hooks\n- Update dependencies\n\nAll tasks use Makefile targets for consistency.",
25+
"edited": false,
26+
"edit_count": 0,
27+
"is_ai_generated": false,
28+
"attachments": [],
29+
"attachment_count": 0
30+
}
31+
],
32+
"attachments": [],
33+
"attachment_count": 0,
34+
"comment_count": 1,
35+
"order": 0,
36+
"custom_fields": {}
37+
}

.gira/board/done/SOUL-15.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"created_at": "2025-11-08T14:20:00.645914",
3+
"updated_at": "2025-11-09T00:02:44.893996Z",
4+
"id": "SOUL-15",
5+
"uuid": "73de0847-6168-4285-b72a-cd73052cfd87",
6+
"title": "Setup security scanning with Safety and Bandit",
7+
"description": "Configure Safety for dependency vulnerability scanning and Bandit for security issue detection in code. Integrate into pre-commit hooks and CI pipeline for automated security checks.",
8+
"status": "done",
9+
"type": "task",
10+
"priority": "medium",
11+
"labels": [],
12+
"assignee": "jared@goatbytes.io",
13+
"reporter": "jared@goatbytes.io",
14+
"epic_id": "EPIC-001",
15+
"blocked_by": [],
16+
"blocks": [],
17+
"comments": [
18+
{
19+
"created_at": "2025-11-08T16:01:01.428094",
20+
"updated_at": "2025-11-08T16:01:01.428095",
21+
"id": "20251108160101-a8f9e640",
22+
"ticket_id": "SOUL-15",
23+
"author": "jared@goatbytes.io",
24+
"content": "Setup security scanning with Safety and Bandit:\n\n**Makefile Targets:**\n- `make security`: Run Bandit (code security) and Safety (dependency vulnerabilities)\n- `make security-audit`: Generate detailed JSON reports (bandit-report.json, safety-report.json)\n- Updated `make clean` to remove security reports\n\n**CI/CD Integration:**\n- Added security job to GitHub Actions workflow (.github/workflows/ci.yml)\n- Runs Bandit and Safety on every PR and push to main\n- Safety continues on error to not block builds on minor issues\n\n**Configuration:**\n- Bandit config already in pyproject.toml:\n - Excludes tests/ and .venv/\n - Skips B101 (assert_used) for tests\n- Safety and Bandit already in [tool.poetry.group.security.dependencies]\n\n**Security Policy:**\n- Created SECURITY.md with:\n - Vulnerability reporting process (security@goatbytes.io)\n - Response timelines (48h initial, 7d update)\n - Security best practices (API keys, dependencies, input validation)\n - Scanning instructions and tools documentation\n - Automated scanning schedule\n\n**VS Code Tasks:**\n- Added 'Security Scan' task\n- Added 'Security Audit (Full Report)' task\n\n**Documentation:**\n- Updated docs/development.md with security scanning section\n\n**.gitignore:**\n- Added bandit-report.json and safety-report.json\n\nSecurity scanning now integrated into development workflow and CI/CD pipeline.",
25+
"edited": false,
26+
"edit_count": 0,
27+
"is_ai_generated": false,
28+
"attachments": [],
29+
"attachment_count": 0
30+
}
31+
],
32+
"attachments": [],
33+
"attachment_count": 0,
34+
"comment_count": 1,
35+
"order": 0,
36+
"custom_fields": {}
37+
}

.gira/board/done/SOUL-2.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:37.133941",
3-
"updated_at": "2025-11-08T14:29:35.852204",
3+
"updated_at": "2025-11-09T00:02:44.895850Z",
44
"id": "SOUL-2",
55
"uuid": "8866c404-7aa3-4697-b4e9-42d092aac768",
66
"title": "Setup pyproject.toml with project metadata",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "high",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-3.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:39.236938",
3-
"updated_at": "2025-11-08T14:33:31.714831",
3+
"updated_at": "2025-11-09T00:02:44.894439Z",
44
"id": "SOUL-3",
55
"uuid": "8f4bc1ad-a077-450d-a1c5-0fd77f3ac451",
66
"title": "Configure Poetry/PDM for dependency management",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "high",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

.gira/board/done/SOUL-4.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"created_at": "2025-11-08T14:19:41.003317",
3-
"updated_at": "2025-11-08T14:36:16.354346",
3+
"updated_at": "2025-11-09T00:02:44.896645Z",
44
"id": "SOUL-4",
55
"uuid": "eabe0993-0bd3-47f2-8bd7-579e7f1dc12a",
66
"title": "Setup Ruff for linting and formatting",
@@ -9,6 +9,7 @@
99
"type": "task",
1010
"priority": "high",
1111
"labels": [],
12+
"assignee": "jared@goatbytes.io",
1213
"reporter": "jared@goatbytes.io",
1314
"epic_id": "EPIC-001",
1415
"blocked_by": [],

0 commit comments

Comments
 (0)