Skip to content

Commit 7013273

Browse files
hyperpolymathclaude
andcommitted
docs(readme): fix AsciiDoc formatting (badges, code blocks, links)
The README is AsciiDoc but large parts used Markdown syntax, which GitHub's Asciidoctor renders as literal text / mis-parses: - Badges: Markdown [![alt](img)](link) + blank-line splits + two empty-URL badges + a stray comment -> one clean row of image: macros (added real Erlang/OTP and LFE shields). - Code blocks: 12 Markdown ``` fences -> AsciiDoc [source,LANG] + ---- ; the ASCII-art banner and architecture diagram -> literal .... blocks. (The '= ' comment lines inside bash blocks were being parsed as document headings; restored to '# ' shell comments.) - Links: Markdown [text](url) -> AsciiDoc link:url[text]. - Roadmap: Markdown '- [ ]' task items -> AsciiDoc '* [ ]' checklist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9177ac4 commit 7013273

1 file changed

Lines changed: 76 additions & 69 deletions

File tree

README.adoc

Lines changed: 76 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
// SPDX-License-Identifier: CC-BY-SA-4.0
22
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
33
= 🔒 SafeBruteForce
4-
image:https://img.shields.io/badge/OpenSSF-Best_Practices-green?logo=openssourcesecurity[OpenSSF Best Practices,link="https://www.bestpractices.dev/en/projects/new?repo_url=https://github.com/hyperpolymath/safe-brute-force"]
5-
64

75
image:https://img.shields.io/badge/License-MPL_2.0-blue.svg[License: MPL-2.0,link="https://opensource.org/licenses/MPL-2.0"]
8-
// SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
9-
10-
[![RSR Compliance](https://img.shields.io/badge/RSR-Bronze-cd7f32)](RSR_COMPLIANCE.md)
11-
[![TPCF Perimeter](https://img.shields.io/badge/TPCF-P3%20Community-green)](MAINTAINERS.md)
12-
[![Erlang/OTP]()](https://www.erlang.org/)
13-
[![LFE]()](https://lfe.io/)
14-
[![CI](https://img.shields.io/badge/CI-GitLab%20%7C%20GitHub-blue)](.github/workflows/ci.yml)
15-
[![Security](https://img.shields.io/badge/security.txt-RFC%209116-informational)](.well-known/security.txt)
6+
image:https://img.shields.io/badge/OpenSSF-Best_Practices-green[OpenSSF Best Practices,link="https://www.bestpractices.dev/en/projects/new?repo_url=https://github.com/hyperpolymath/safe-brute-force"]
7+
image:https://img.shields.io/badge/RSR-Bronze-cd7f32[RSR Compliance,link="RSR_COMPLIANCE.md"]
8+
image:https://img.shields.io/badge/TPCF-P3_Community-green[TPCF Perimeter,link="MAINTAINERS.md"]
9+
image:https://img.shields.io/badge/Erlang%2FOTP-26+-A90533?logo=erlang&logoColor=white[Erlang/OTP,link="https://www.erlang.org/"]
10+
image:https://img.shields.io/badge/LFE-Lisp_Flavoured_Erlang-orange[LFE,link="https://lfe.io/"]
11+
image:https://img.shields.io/badge/CI-GitLab_%7C_GitHub-blue[CI,link="https://github.com/hyperpolymath/safe-brute-force/actions"]
12+
image:https://img.shields.io/badge/security.txt-RFC_9116-informational[Security,link=".well-known/security.txt"]
1613

1714
A *controlled, ethical brute-force utility* designed for authorized security testing and penetration testing engagements. Unlike traditional brute-force tools that flood systems recklessly, SafeBruteForce prioritizes safety, user control, and system preservation.
1815

19-
```
16+
....
2017
███████╗ █████╗ ███████╗███████╗ ██████╗ ███████╗
2118
██╔════╝██╔══██╗██╔════╝██╔════╝ ██╔══██╗██╔════╝
2219
███████╗███████║█████╗ █████╗ ██████╔╝█████╗
@@ -26,7 +23,7 @@ A *controlled, ethical brute-force utility* designed for authorized security tes
2623
2724
SafeBruteForce v0.1.0 - Controlled Ethical Testing
2825
⚠️ For Authorized Security Testing Only ⚠️
29-
```
26+
....
3027

3128
== 🔍 Why SafeBruteForce?
3229

@@ -90,50 +87,54 @@ SafeBruteForce *redefines brute-forcing* as a controlled, pausable process:
9087

9188
=== Prerequisites
9289

93-
```bash
94-
= Erlang/OTP 26 or higher
90+
[source,bash]
91+
----
92+
# Erlang/OTP 26 or higher
9593
96-
= Ubuntu/Debian:
94+
# Ubuntu/Debian:
9795
9896
sudo apt-get install erlang
9997
100-
= macOS:
98+
# macOS:
10199
102100
brew install erlang
103101
104-
= Rebar3 (build tool)
102+
# Rebar3 (build tool)
105103
106104
curl -O https://s3.amazonaws.com/rebar3/rebar3
107105
chmod +x rebar3
108106
sudo mv rebar3 /usr/local/bin/
109-
```
107+
----
110108

111109
=== Installation
112110

113-
```bash
114-
= Clone the repository
111+
[source,bash]
112+
----
113+
# Clone the repository
115114
116115
git clone https://github.com/Hyperpolymath/safe-brute-force.git
117116
cd safe-brute-force
118117
119-
= Compile
118+
# Compile
120119
121120
rebar3 compile
122121
123-
= Run tests
122+
# Run tests
124123
125124
rebar3 lfe test
126-
```
125+
----
127126

128127
=== Quick Start
129128

130129
==== Interactive REPL (Recommended)
131130

132-
```bash
131+
[source,bash]
132+
----
133133
rebar3 lfe repl
134-
```
134+
----
135135

136-
```lisp
136+
[source,lisp]
137+
----
137138
;; Start the application
138139
> (sbf:start)
139140
@@ -160,34 +161,36 @@ rebar3 lfe repl
160161
161162
;; Get detailed statistics
162163
> (sbf:stats)
163-
```
164+
----
164165

165166
==== Command Line Interface
166167

167-
```bash
168-
= Make CLI executable
168+
[source,bash]
169+
----
170+
# Make CLI executable
169171
170172
chmod +x sbf_cli
171173
172-
= Test with wordlist
174+
# Test with wordlist
173175
174176
./sbf_cli wordlist priv/wordlists/common-passwords.txt \
175177
http://localhost/login admin
176178
177-
= Test PIN codes
179+
# Test PIN codes
178180
179181
./sbf_cli pins http://localhost/api/verify
180182
181-
= Generate charset combinations
183+
# Generate charset combinations
182184
183185
./sbf_cli charset "abc123" 4 6 http://localhost
184-
```
186+
----
185187

186188
== 📖 Usage Examples
187189

188190
=== Example 1: HTTP Login Testing
189191

190-
```lisp
192+
[source,lisp]
193+
----
191194
(let ((pattern-config
192195
(list (tuple 'type 'wordlist)
193196
(tuple 'filename "passwords.txt")
@@ -202,11 +205,12 @@ chmod +x sbf_cli
202205
(tuple 'success_pattern "Welcome")
203206
(tuple 'failure_pattern "Invalid"))))
204207
(sbf:run pattern-config target-config))
205-
```
208+
----
206209

207210
=== Example 2: PIN Code Testing
208211

209-
```lisp
212+
[source,lisp]
213+
----
210214
;; Test all 4-digit PINs with custom validator
211215
(let ((validator
212216
(lambda (pin)
@@ -221,11 +225,12 @@ chmod +x sbf_cli
221225
(list (tuple 'type 'function)
222226
(tuple 'function validator))))
223227
(sbf:run pattern-config target-config))
224-
```
228+
----
225229

226230
=== Example 3: Custom Pattern Generation
227231

228-
```lisp
232+
[source,lisp]
233+
----
229234
;; Company-specific password patterns
230235
(let ((pattern-generator
231236
(lambda ()
@@ -244,11 +249,12 @@ chmod +x sbf_cli
244249
(tuple 'url "http://testsite.local/login")
245250
(tuple 'username "testuser"))))
246251
(sbf:run pattern-config target-config))
247-
```
252+
----
248253

249254
=== Example 4: Checkpoint Management
250255

251-
```lisp
256+
[source,lisp]
257+
----
252258
;; Start a long-running operation
253259
> (sbf:run_async pattern-config target-config)
254260
#Pid<0.234.0>
@@ -263,13 +269,13 @@ chmod +x sbf_cli
263269
264270
> (sbf:load_checkpoint "my_session_1705334400_1234")
265271
{ok, #{state => ...}}
266-
```
272+
----
267273

268274
== 🏗️ Architecture
269275

270276
SafeBruteForce is built on *Erlang/OTP* principles for robustness and concurrency:
271277

272-
```
278+
....
273279
┌─────────────────────────────────────────────────┐
274280
│ sbf_app (Application) │
275281
└───────────────────┬─────────────────────────────┘
@@ -289,7 +295,7 @@ SafeBruteForce is built on *Erlang/OTP* principles for robustness and concurrenc
289295
- running - Pattern execution
290296
- paused - Rate limiting
291297
- waiting - Result tracking
292-
```
298+
....
293299

294300
=== Core Modules
295301

@@ -335,55 +341,56 @@ Be aware of applicable laws in your jurisdiction:
335341

336342
== 📚 Documentation
337343

338-
- *[Usage Guide](docs/USAGE.md)*: Comprehensive usage instructions
339-
- *[Security Best Practices](docs/SECURITY.md)*: Legal and ethical guidelines
340-
- *[Contributing Guide](docs/CONTRIBUTING.md)*: How to contribute
341-
- *[CLAUDE.md](CLAUDE.md)*: AI assistant guidance for development
344+
- *link:docs/USAGE.md[Usage Guide]*: Comprehensive usage instructions
345+
- *link:docs/SECURITY.md[Security Best Practices]*: Legal and ethical guidelines
346+
- *link:docs/CONTRIBUTING.md[Contributing Guide]*: How to contribute
347+
- *link:CLAUDE.md[CLAUDE.md]*: AI assistant guidance for development
342348

343349
== 🧪 Testing
344350

345-
```bash
346-
= Run all tests
351+
[source,bash]
352+
----
353+
# Run all tests
347354
348355
rebar3 lfe test
349356
350-
= Run with coverage
357+
# Run with coverage
351358
352359
rebar3 lfe test --cover
353360
354-
= Run specific test module
361+
# Run specific test module
355362
356363
rebar3 lfe test --module=sbf_patterns_tests
357-
```
364+
----
358365

359366
== 🗺️ Roadmap
360367

361368
=== v0.2.0 (Planned)
362-
- [ ] SSH brute-force module
363-
- [ ] FTP support
364-
- [ ] Database connection testing
365-
- [ ] Distributed worker support
366-
- [ ] Web UI dashboard
367-
- [ ] Enhanced reporting (PDF, HTML)
369+
* [ ] SSH brute-force module
370+
* [ ] FTP support
371+
* [ ] Database connection testing
372+
* [ ] Distributed worker support
373+
* [ ] Web UI dashboard
374+
* [ ] Enhanced reporting (PDF, HTML)
368375

369376
=== v0.3.0 (Future)
370-
- [ ] Machine learning pattern generation
371-
- [ ] Cloud integration (AWS, GCP, Azure)
372-
- [ ] SIEM integration
373-
- [ ] Custom plugin system
374-
- [ ] Performance optimizations
377+
* [ ] Machine learning pattern generation
378+
* [ ] Cloud integration (AWS, GCP, Azure)
379+
* [ ] SIEM integration
380+
* [ ] Custom plugin system
381+
* [ ] Performance optimizations
375382

376383
== 🤝 Contributing
377384

378-
We welcome contributions! Please see [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
385+
We welcome contributions! Please see link:docs/CONTRIBUTING.md[CONTRIBUTING.md] for guidelines.
379386

380387
=== Contributors
381388

382-
- [Hyperpolymath](https://github.com/Hyperpolymath) - Creator and maintainer
389+
- link:https://github.com/Hyperpolymath[Hyperpolymath] - Creator and maintainer
383390

384391
== 📜 License
385392

386-
Palimpsest-MPL-1.0 License - See [LICENSE](LICENSE) for details.
393+
Palimpsest-MPL-1.0 License - See link:LICENSE[LICENSE] for details.
387394

388395
*Note*: While the software is open source, users are responsible for ensuring their use complies with all applicable laws and regulations.
389396

@@ -415,9 +422,9 @@ This project maintains the principle of *"Safety First"*:
415422
== 📞 Support
416423

417424
- *Documentation*: Check the `docs/` directory
418-
- *Issues*: [GitHub Issues](https://github.com/Hyperpolymath/safe-brute-force/issues)
419-
- *Discussions*: [GitHub Discussions](https://github.com/Hyperpolymath/safe-brute-force/discussions)
420-
- *Security*: See [SECURITY.md](docs/SECURITY.md) for responsible disclosure
425+
- *Issues*: link:https://github.com/Hyperpolymath/safe-brute-force/issues[GitHub Issues]
426+
- *Discussions*: link:https://github.com/Hyperpolymath/safe-brute-force/discussions[GitHub Discussions]
427+
- *Security*: See link:docs/SECURITY.md[SECURITY.md] for responsible disclosure
421428

422429
== 🙏 Acknowledgments
423430

0 commit comments

Comments
 (0)