Skip to content

Commit 116ce05

Browse files
MatrixAclaude
andauthored
Pre-public release audit: add community docs, enforce formatting (#13)
- Add community documentation: CODE_OF_CONDUCT.md, CHANGELOG.md, CONTRIBUTING.md, SECURITY.md - Add GitHub templates: bug report, feature request, PR template - Add rustfmt check to CI workflow - Harden .gitignore with .context/, .env*, *.pem, *.key patterns - Add rust-version, documentation URL, and exclude list to Cargo.toml - Apply cargo fmt to all source files Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c454557 commit 116ce05

25 files changed

Lines changed: 1039 additions & 315 deletions
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug to help us improve aicheck
4+
title: "[BUG] "
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Description
10+
11+
A clear description of the bug.
12+
13+
## Steps to Reproduce
14+
15+
1. Run `aic check ...`
16+
2. ...
17+
18+
## Expected Behavior
19+
20+
What you expected to happen.
21+
22+
## Actual Behavior
23+
24+
What actually happened. Include any error output.
25+
26+
## Environment
27+
28+
- **OS**: (e.g., macOS 14, Ubuntu 24.04)
29+
- **aicheck version**: (`aic --version`)
30+
- **Rust version**: (`rustc --version`)
31+
32+
## Sample File
33+
34+
If possible, attach or link to a sample file that reproduces the issue.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for aicheck
4+
title: "[FEATURE] "
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problem
10+
11+
A clear description of the problem or limitation you're experiencing.
12+
13+
## Proposed Solution
14+
15+
Describe the feature or improvement you'd like to see.
16+
17+
## Alternatives Considered
18+
19+
Any alternative solutions or features you've considered.
20+
21+
## Additional Context
22+
23+
Any other context, references, or screenshots about the feature request.

.github/pull_request_template.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## Summary
2+
3+
Brief description of the changes.
4+
5+
## Changes
6+
7+
-
8+
9+
## Checklist
10+
11+
- [ ] `cargo fmt -- --check` passes
12+
- [ ] `cargo clippy -- -D warnings` passes
13+
- [ ] `cargo test` passes
14+
- [ ] New detection methods include appropriate confidence tiers
15+
- [ ] Documentation updated (if applicable)

.github/workflows/ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ jobs:
2121
lfs: true
2222
- uses: dtolnay/rust-toolchain@stable
2323
with:
24-
components: clippy
24+
components: clippy, rustfmt
2525
- uses: Swatinem/rust-cache@v2
26+
- run: cargo fmt -- --check
2627
- run: cargo clippy -- -D warnings
2728
- run: cargo test
2829
- run: cargo build --release

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@
33
*.swp
44
.idea/
55
.vscode/
6+
.context/
7+
.env*
8+
*.pem
9+
*.key

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.1.0] - 2025-06-01
9+
10+
### Added
11+
12+
- CLI commands: `aic check [PATHS]` and `aic info <FILE>`
13+
- C2PA manifest detection and validation
14+
- XMP/IPTC metadata analysis for AI provenance signals
15+
- EXIF heuristic analysis
16+
- PNG text chunk inspection
17+
- MP4 container metadata parsing
18+
- ID3 audio tag detection
19+
- WAV container metadata analysis
20+
- Filename pattern matching for known AI tools
21+
- Audio spectral analysis for synthetic content
22+
- Invisible watermark detection (DWT-DCT)
23+
- Confidence tiers: HIGH, MEDIUM, LOW
24+
- Support for image formats: JPEG, PNG, WebP, AVIF, HEIF, TIFF, GIF, BMP
25+
- Support for video formats: MP4, MOV, AVI, WebM
26+
- Support for audio formats: MP3, M4A, WAV
27+
- Support for document formats: PDF
28+
- JSON output mode (`--json`)
29+
- Quiet mode (`--quiet`)
30+
- Deep analysis mode (`--deep`)
31+
- Internationalization support for 7 languages (en, de, es, hi, ja, ko, zh-CN)
32+
- Rustdoc documentation with GitHub Pages deployment

CODE_OF_CONDUCT.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
This project follows the [Contributor Covenant v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
4+
5+
## Our Pledge
6+
7+
We pledge to make participation in our community a welcoming experience for everyone, regardless of background or identity.
8+
9+
## Our Standards
10+
11+
Positive behavior includes using welcoming language, respecting differing viewpoints, accepting constructive feedback, and focusing on what is best for the community.
12+
13+
Unacceptable behavior includes personal or political attacks, publishing others' private information without permission, and other conduct which could reasonably be considered inappropriate in a professional setting.
14+
15+
## Enforcement
16+
17+
Instances of unacceptable behavior may be reported to the project maintainers. All complaints will be reviewed and investigated promptly and fairly.
18+
19+
## Attribution
20+
21+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.

CONTRIBUTING.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Contributing to AICheck
2+
3+
Thanks for your interest in contributing! Here's how to get started.
4+
5+
## Development Setup
6+
7+
```bash
8+
# Clone the repo
9+
git clone https://github.com/MatrixA/aicheck.git
10+
cd aicheck
11+
12+
# Build
13+
cargo build
14+
15+
# Run tests
16+
cargo test
17+
18+
# Run the CLI
19+
cargo run -- check photo.jpg
20+
```
21+
22+
Requires **Rust 1.86+**.
23+
24+
## Before Submitting a PR
25+
26+
Please make sure all checks pass locally:
27+
28+
```bash
29+
cargo fmt -- --check # formatting
30+
cargo clippy -- -D warnings # lints
31+
cargo test # tests
32+
```
33+
34+
## Pull Request Process
35+
36+
1. Fork the repo and create a branch from `main`
37+
2. Make your changes
38+
3. Ensure all checks above pass
39+
4. Open a PR with a clear description of what changed and why
40+
41+
## Adding a New AI Tool
42+
43+
To add detection for a new AI tool, update the pattern list in `src/known_tools.rs`. Each entry needs a case-insensitive pattern and a canonical tool name.
44+
45+
## Adding a New Detection Method
46+
47+
New detectors go in `src/detector/`. Implement detection logic, then register it in `src/detector/mod.rs` within `run_all_detectors()`.
48+
49+
## Reporting Bugs
50+
51+
Use the [bug report template](https://github.com/MatrixA/aicheck/issues/new?template=bug_report.md) and include:
52+
- The file you tested (or a description if you can't share it)
53+
- Expected vs actual output
54+
- Your OS and Rust version
55+
56+
## License
57+
58+
By contributing, you agree that your contributions will be licensed under AGPL-3.0-or-later.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@
22
name = "aicheck"
33
version = "0.1.0"
44
edition = "2021"
5+
rust-version = "1.86"
56
description = "Detect AI-generated content via provenance signals (C2PA, XMP/IPTC, EXIF)"
67
license = "AGPL-3.0-or-later"
78
repository = "https://github.com/MatrixA/aicheck"
89
homepage = "https://github.com/MatrixA/aicheck"
10+
documentation = "https://matrixa.github.io/aicheck/"
911
keywords = ["ai-detection", "c2pa", "watermark", "metadata", "forensics"]
1012
categories = ["command-line-utilities", "multimedia"]
13+
exclude = [".github/", ".context/", "docs/", "tests/fixtures/"]
1114

1215
[lib]
1316
name = "aicheck"

SECURITY.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
| Version | Supported |
6+
|---------|-----------|
7+
| 0.1.x | Yes |
8+
9+
## Reporting a Vulnerability
10+
11+
If you discover a security vulnerability, please report it responsibly:
12+
13+
1. **Do not** open a public issue
14+
2. Use [GitHub's private vulnerability reporting](https://github.com/MatrixA/aicheck/security/advisories/new)
15+
3. Include a description of the vulnerability, steps to reproduce, and potential impact
16+
17+
You should receive an initial response within 72 hours. We'll work with you to understand the issue and coordinate a fix before any public disclosure.

0 commit comments

Comments
 (0)