diff --git a/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/.vale.ini b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/.vale.ini
new file mode 100644
index 0000000..c8fc96d
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/.vale.ini
@@ -0,0 +1,5 @@
+; Vale configuration file to test the `ClosedAttributeBlocks` rule
+StylesPath = ../../../styles
+MinAlertLevel = error
+[*.adoc]
+AsciiDoc.ClosedAttributeBlocks = YES
diff --git a/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testinvalid.adoc b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testinvalid.adoc
new file mode 100644
index 0000000..f22a517
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testinvalid.adoc
@@ -0,0 +1,9 @@
+//vale-fixture
+:_content-type: ASSEMBLY
+[id="rosa-getting-started
+= Comprehensive guide to getting started with {product-title}
+
+//vale-fixture
+:_content-type: ASSEMBLY
+[id="rosa-getting-started_{context}
+= Another guide to getting started
diff --git a/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testvalid.adoc b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testvalid.adoc
new file mode 100644
index 0000000..b342f75
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedAttributeBlocks/testvalid.adoc
@@ -0,0 +1,4 @@
+//vale-fixture
+:_content-type: ASSEMBLY
+[id="rosa-getting-started_{context}"]
+= Comprehensive guide to getting started with {product-title}
diff --git a/.vale/fixtures/AsciiDoc/ClosedIdQuotes/.vale.ini b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/.vale.ini
new file mode 100644
index 0000000..84c9fba
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/.vale.ini
@@ -0,0 +1,5 @@
+; Vale configuration file to test the `ClosedIdQuotes` rule
+StylesPath = ../../../styles
+MinAlertLevel = error
+[*.adoc]
+AsciiDoc.ClosedIdQuotes = YES
diff --git a/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testinvalid.adoc b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testinvalid.adoc
new file mode 100644
index 0000000..7d6957f
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testinvalid.adoc
@@ -0,0 +1,7 @@
+//vale-fixture
+[id="rosa-getting-started_{context}]
+= Comprehensive guide to getting started with {product-title}
+
+//vale-fixture
+[id="rosa-getting-started]
+= Another guide to getting started
diff --git a/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testvalid.adoc b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testvalid.adoc
new file mode 100644
index 0000000..b342f75
--- /dev/null
+++ b/.vale/fixtures/AsciiDoc/ClosedIdQuotes/testvalid.adoc
@@ -0,0 +1,4 @@
+//vale-fixture
+:_content-type: ASSEMBLY
+[id="rosa-getting-started_{context}"]
+= Comprehensive guide to getting started with {product-title}
diff --git a/.vale/styles/AsciiDoc/ClosedAttributeBlocks.yml b/.vale/styles/AsciiDoc/ClosedAttributeBlocks.yml
new file mode 100644
index 0000000..d6689a2
--- /dev/null
+++ b/.vale/styles/AsciiDoc/ClosedAttributeBlocks.yml
@@ -0,0 +1,7 @@
+---
+extends: existence
+scope: raw
+level: error
+message: "Attribute block is not closed."
+raw:
+  - '(?<!\/\/)\[.*(?<!\])\n'
diff --git a/.vale/styles/AsciiDoc/ClosedIdQuotes.yml b/.vale/styles/AsciiDoc/ClosedIdQuotes.yml
new file mode 100644
index 0000000..c706a8d
--- /dev/null
+++ b/.vale/styles/AsciiDoc/ClosedIdQuotes.yml
@@ -0,0 +1,7 @@
+---
+extends: existence
+scope: raw
+level: error
+message: "Quoted ID value is not closed."
+raw:
+  - '(?<!\/\/)\[id\=\".*(?<!\")\]'