Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions REBUILD_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Rebuild Report

**Rebuild tag**: `20260419_025004`
**Issued**: 2026-04-19T09:50:05.998797+00:00
**Issuer**: ass_ade.engine.schema_rebuilder
**Schema**: ASSADE-SPEC-003

## Source

| Field | Value |
|-------|-------|
| Input path | `C:\httpie-assade-demo\httpie\cli` |
| Plan digest | `7c2a02e77c1ea061` |
| Control root | `` |

## Output

| Field | Value |
|-------|-------|
| Components written | 101 |
| Output folder | `C:\httpie-cli-rebuilt` |

## Tier breakdown

| Tier | Count |
|------|-------|
| `a0_qk_constants` | 11 |
| `a1_at_functions` | 68 |
| `a2_mo_composites` | 22 |
| **Total** | **101** |

## Public invariants

| Invariant | Observed | Limit | Pass |
|-----------|---------|-------|------|
| D_max (depth) | ? | 23 | YES |
| epsilon_KL (dup fraction) | 0.00e+00 | 0.00e+00 | YES |
| tau_trust | 1820/1823 | ≥1820/1823 | YES |
| G_18 parity | ? mod 324 | — | — |

## Audit summary

- **Structural conformant**: YES
- **Pass rate**: 100.0%
- **Total findings**: 0
- **Valid components**: 101 / 101

## Certificate

- **Version**: ASSADE-SPEC-CERT-1
- **SHA-256**: `33585e1fd45121ac34cdbd081b4479a55d4fa58ef5e219b144a85ee77725952b`

Verify:
```bash
python -c "import json,hashlib; c=json.load(open('CERTIFICATE.json')); h=c.pop('certificate_sha256'); b=json.dumps(c,sort_keys=True).encode(); print('VERIFIED' if hashlib.sha256(b).hexdigest()==h else 'TAMPERED')"
```
90 changes: 90 additions & 0 deletions RECON_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# RECON_REPORT

**Path:** `C:\httpie-assade-demo`
**Duration:** 1533 ms

## Summary

Repo at `C:\httpie-assade-demo` contains 265 files (135 source, 107 test-related) across 5 directory levels (2074.6 KB total). Circular import detected (2 cycle(s)). Test coverage: 429 test functions across 35 test files (ratio 0.43). Documentation coverage is low (17%). Dominant tier: `at`.

## Scout

- Files: 265 (2074.6 KB)
- Source files: 135
- Max depth: 5
- Top-level: .editorconfig, .github, .gitignore, .packit.yaml, AUTHORS.md, CHANGELOG.md, CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE, MANIFEST.in

**By extension:**
- `.py`: 133
- `.json`: 26
- `.md`: 24
- `.xml`: 24
- `.yml`: 17
- `[no_ext]`: 8
- `.sh`: 3
- `.1`: 3

## Dependencies

- Python files: 133
- Unique external deps: 76
- Max import depth: 2
- Circular deps: YES — ['httpie/client.py → httpie/context.py → httpie/output/utils.py → httpie/output/utils.py', 'httpie/output/formatters/xml.py → httpie/output/formatters/xml.py']

## Tier Distribution

- `qk`: 6 — e.g. httpie/__init__.py, httpie/cli/nested_json/__init__.py
- `at`: 82 — e.g. setup.py, extras/packaging/linux/scripts/httpie_cli.py
- `mo`: 11 — e.g. httpie/context.py, httpie/cli/argparser.py
- `og`: 16 — e.g. httpie/compat.py, httpie/config.py
- `sy`: 18 — e.g. docs/contributors/fetch.py, docs/contributors/generate.py

**Violations:**
- httpie/cli/definition.py (at, 29KB — may span tiers)
- tests/test_output.py (at, 20KB — may span tiers)
- tests/test_sessions.py (at, 27KB — may span tiers)

## Tests

- Test files: 35
- Test functions: 429
- Coverage ratio: 0.43
- Frameworks: pytest, unittest
- Untested modules: 66

**Untested (sample):**
- `setup.py`
- `docs/contributors/fetch.py`
- `docs/contributors/generate.py`
- `docs/installation/generate.py`
- `extras/packaging/linux/build.py`
- `extras/packaging/linux/scripts/http_cli.py`
- `extras/packaging/linux/scripts/hooks/hook-pip.py`
- `extras/profiling/benchmarks.py`

## Documentation

- README: yes
- Doc files: 26
- Public callables: 1107
- Documented: 189 (17%)

**Missing docstrings (sample):**
- `docs/contributors/fetch.py:main`
- `docs/contributors/fetch.py:find_committers`
- `docs/contributors/fetch.py:find_reporters`
- `docs/contributors/fetch.py:release_date`
- `docs/contributors/fetch.py:load_awesome_people`
- `docs/contributors/fetch.py:fetch`
- `docs/contributors/fetch.py:new_person`
- `docs/contributors/fetch.py:user`
- `docs/contributors/fetch.py:fetch_missing_users_details`
- `docs/contributors/fetch.py:save_awesome_people`

## Recommendations

1. Resolve 2 circular import(s) — introduce an interface layer or inversion-of-control.
2. Docstring coverage is 17%. Add docstrings to public functions and classes.
3. 3 file(s) may span tier boundaries. Split into smaller, single-purpose modules.

**Next action:** Fix circular imports first, then increase test coverage.
63 changes: 63 additions & 0 deletions docs/assade_analysis.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# httpie/cli — ASS-ADE Static Analysis

> Automated static analysis of the `httpie/cli` module using [ASS-ADE](https://atomadic.tech) (Autonomous Sovereign System: Atomadic Development Environment). No LLM was used in the recon phase — pure static analysis in < 2 seconds.

## Findings

### Recon (full repo)

| Metric | Value |
|--------|-------|
| Source files | 135 Python |
| Circular imports | 2 detected |
| Doc coverage | 17% (189 / 1107 public callables) |
| Untested modules | 66 |
| Test ratio | 0.43 (429 test functions / 35 test files) |
| Tier violations | 3 files spanning multiple responsibility layers |

### httpie/cli module breakdown

The `httpie/cli` directory contains 1,708 lines across 5 files:

| File | Lines | Tier classification |
|------|-------|---------------------|
| `definition.py` | 956 | Mixed (constants + arg groups + spec) |
| `argtypes.py` | 275 | at-layer functions |
| `options.py` | 249 | mo-layer composites |
| `constants.py` | 134 | qk-layer constants |
| `dicts.py` | 94 | at-layer functions |

`definition.py` at 956 lines is the primary concern — it conflates constant declarations, argument group definitions, and top-level spec composition, which are three distinct responsibility layers.

### Rebuild (httpie/cli only)

Running ASS-ADE rebuild on just the `httpie/cli` directory produced a tier-partitioned reference:

| Phase | Result |
|-------|--------|
| Ingest | 15 files, 153 symbols, 153 gaps |
| Gap-fill proposals | 101 |
| Enrichment | 101 bodies, 108 edges |
| Cycle check | **Acyclic** (all cycles resolved) |
| Purity | 84 violating edges removed |
| Audit | 101/101 clean (100.0%) |

Tier partition:

| Tier | Components |
|------|-----------|
| `a0_qk_constants` (pure constants, no deps) | 11 |
| `a1_at_functions` (pure functions, simple deps) | 68 |
| `a2_mo_composites` (composite structures) | 22 |

## Proposed improvements

1. **Split `definition.py`** — Extract constants to `constants.py`, move argument group builders to `groups.py`, keep only the top-level `ParserSpec` composition in `definition.py`. Target: < 300 lines each.

2. **Resolve circular imports** — Two import cycles detected (`client.py → context.py → output/utils.py` and a self-referential import in `output/formatters/xml.py`). Introduce an interface layer or lazy import to break the cycle.

3. **Docstring coverage** — 17% of 1,107 public callables are documented. Prioritize `httpie/cli/argtypes.py` and `httpie/cli/options.py` which have the highest external call surface.

## Tool

[ASS-ADE](https://atomadic.tech) — `pip install ass-ade-rebuild` — runs locally, no LLM required for recon. Full recon took 1.5 seconds on this repo.
Loading