Skip to content
Merged
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.DS_Store
57 changes: 57 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Overview

This is the **Dash Improvement Proposals (DIPs)** repository — a collection of technical specification documents for the Dash cryptocurrency protocol. Similar to Bitcoin's BIPs, each DIP describes a new feature, protocol change, or informational specification unique to Dash. This is a documentation-only repo with no application code.

## Repository Structure

- Each DIP is a markdown file at the root: `dip-NNNN.md` (zero-padded 4-digit number)

Check failure on line 11 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:11:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
- Some DIPs have companion directories `dip-NNNN/` containing images, JSON schemas, supplementary documents, or scripts

Check failure on line 12 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:12:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
- `README.md` contains the master table of all DIPs with their number, layer, title, owner, type, and status

Check failure on line 13 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:13:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
- Gaps in numbering are intentional (e.g., no DIP 17-19)

Check failure on line 14 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:14:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
Comment on lines +11 to +14
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

CI-breaking: all unordered list items must use asterisks (*), not dashes — MD004

The entire file uses dashes for bullet lists, violating the MD004 rule that is enforced by .markdownlint.json and is now blocking the markdownlint GitHub Actions check. Notably, line 57 itself states "Use asterisks for unordered lists, not dashes" while using a dash.

🐛 Proposed fix — convert all dashes to asterisks

Lines 11–14 (Repository Structure):

-  - Each DIP is a markdown file at the root: `dip-NNNN.md` (zero-padded 4-digit number)
-  - Some DIPs have companion directories `dip-NNNN/` containing images, JSON schemas, supplementary documents, or scripts
-  - `README.md` contains the master table of all DIPs with their number, layer, title, owner, type, and status
-  - Gaps in numbering are intentional (e.g., no DIP 17-19)
+  * Each DIP is a markdown file at the root: `dip-NNNN.md` (zero-padded 4-digit number)
+  * Some DIPs have companion directories `dip-NNNN/` containing images, JSON schemas, supplementary documents, or scripts
+  * `README.md` contains the master table of all DIPs with their number, layer, title, owner, type, and status
+  * Gaps in numbering are intentional (e.g., no DIP 17-19)

Lines 47–50 (Markdownlint Configuration):

-  - **MD004**: List style must use asterisks (`*`), not dashes
-  - **MD013**: Line length limit is **disabled** (long lines are allowed)
-  - **MD033**: Inline HTML is **allowed** (needed for `<pre>` headers and images)
-  - **MD041**: First-line-heading rule is **disabled** (DIPs start with `<pre>` block)
+  * **MD004**: List style must use asterisks (`*`), not dashes
+  * **MD013**: Line length limit is **disabled** (long lines are allowed)
+  * **MD033**: Inline HTML is **allowed** (needed for `<pre>` headers and images)
+  * **MD041**: First-line-heading rule is **disabled** (DIPs start with `<pre>` block)

Lines 54–57 (Editing Guidelines):

-  - When adding a new DIP, also add its entry to the summary table in `README.md`
-  - DIP numbers are assigned by editors — drafts should use an alias name, not a self-assigned number
-  - Place supporting assets (images, JSON, scripts) in a `dip-NNNN/` directory matching the DIP number
-  - Use asterisks for unordered lists, not dashes (enforced by MD004)
+  * When adding a new DIP, also add its entry to the summary table in `README.md`
+  * DIP numbers are assigned by editors — drafts should use an alias name, not a self-assigned number
+  * Place supporting assets (images, JSON, scripts) in a `dip-NNNN/` directory matching the DIP number
+  * Use asterisks for unordered lists, not dashes (enforced by MD004)

Also applies to: 47-50, 54-57

🧰 Tools
🪛 GitHub Actions: .github/workflows/markdownlint.yml

[error] 11-11: markdownlint MD004/ul-style Unordered list style (Expected: asterisk; Actual: dash) on CLAUDE.md:11. Please convert dash to asterisk for unordered list items.

🪛 GitHub Check: lint

[failure] 14-14: Unordered list style
CLAUDE.md:14:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md


[failure] 13-13: Unordered list style
CLAUDE.md:13:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md


[failure] 12-12: Unordered list style
CLAUDE.md:12:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md


[failure] 11-11: Unordered list style
CLAUDE.md:11:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 11 - 14, Unordered list items in CLAUDE.md use dashes
instead of asterisks which breaks MD004; replace all leading "-" bullets with
"*" throughout the document (notably the bullets under the "Repository
Structure", "Markdownlint Configuration" and "Editing Guidelines" sections and
the specific list items like "Each DIP is a markdown file at the root:
`dip-NNNN.md`", "Some DIPs have companion directories `dip-NNNN/`...",
"README.md contains the master table...", and "Gaps in numbering are
intentional..."). Ensure every unordered list in the file uses "*" consistently
so it conforms to the repository's `.markdownlint.json` rule and stops failing
the markdownlint CI check.


## DIP Document Format

Every DIP begins with a metadata header in `<pre>` tags:

```

Check failure on line 20 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Fenced code blocks should have a language specified

CLAUDE.md:20 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add a language specifier to the fenced code block — MD040

The code fence at line 20 has no language tag, triggering an MD040 violation. Since the content is a raw <pre> header example, text is appropriate.

🐛 Proposed fix
- ```
+ ```text
  <pre>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
🧰 Tools
🪛 GitHub Check: lint

[failure] 20-20: Fenced code blocks should have a language specified
CLAUDE.md:20 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md040.md

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` at line 20, Add the missing language specifier to the fenced code
block in CLAUDE.md that contains the raw "<pre>" example: update the opening
triple-backtick fence to include the language tag "text" so the block becomes a
```text fenced block; this addresses the MD040 warning while leaving the
contained HTML unchanged.

<pre>
DIP: NNNN
Title: ...
Author(s): ...
Comments-Summary: ...
Status: Proposed | Final | Withdrawn
Type: Standard | Informational
Created: YYYY-MM-DD
License: MIT License
</pre>
```

Some DIPs include additional fields like `Chain`, `Special-Thanks`, or `Requires`. The body follows BIP 2 style conventions with sections like Abstract, Motivation, Specification, and Copyright.

## Linting

Markdown linting runs on PRs via GitHub Actions (`.github/workflows/markdownlint.yml`). Only changed `.md` files are linted.

```bash
# Run locally (requires markdownlint-cli2)
npx markdownlint-cli2 "dip-0031.md" --config .markdownlint.json
```

### Markdownlint Configuration (`.markdownlint.json`)

Key rule overrides:
- **MD004**: List style must use asterisks (`*`), not dashes

Check failure on line 47 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Lists should be surrounded by blank lines

CLAUDE.md:47 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- **MD004**: List style must u..."] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md

Check failure on line 47 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:47:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
Comment on lines +46 to +47
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add a blank line before the list — MD032

The list at line 47 starts immediately after "Key rule overrides:" without a blank line, triggering an MD032 violation.

🐛 Proposed fix
  Key rule overrides:
+
  * **MD004**: List style must use asterisks (`*`), not dashes
🧰 Tools
🪛 GitHub Check: lint

[failure] 47-47: Lists should be surrounded by blank lines
CLAUDE.md:47 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "- MD004: List style must u..."] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md032.md


[failure] 47-47: Unordered list style
CLAUDE.md:47:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 46 - 47, The markdown violates MD032 because the list
after the heading "Key rule overrides:" starts immediately on the next line;
edit the block containing the literal "Key rule overrides:" and the following
list item "- **MD004**: List style must use asterisks (`*`), not dashes" and
insert a single blank line between the heading/text line and the list so the
list is separated by an empty line (no code changes to list content required).

- **MD013**: Line length limit is **disabled** (long lines are allowed)

Check failure on line 48 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:48:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
- **MD033**: Inline HTML is **allowed** (needed for `<pre>` headers and images)

Check failure on line 49 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:49:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md
- **MD041**: First-line-heading rule is **disabled** (DIPs start with `<pre>` block)

Check failure on line 50 in CLAUDE.md

View workflow job for this annotation

GitHub Actions / lint

Unordered list style

CLAUDE.md:50:1 MD004/ul-style Unordered list style [Expected: asterisk; Actual: dash] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md004.md

## Editing Guidelines

- When adding a new DIP, also add its entry to the summary table in `README.md`
- DIP numbers are assigned by editors — drafts should use an alias name, not a self-assigned number
- Place supporting assets (images, JSON, scripts) in a `dip-NNNN/` directory matching the DIP number
- Use asterisks for unordered lists, not dashes (enforced by MD004)