diff --git a/Makefile b/Makefile
index 854f42ce3..d4259b2fe 100644
--- a/Makefile
+++ b/Makefile
@@ -27,10 +27,10 @@ MARKDOWN_FILES = $(wildcard $(SPEC_DIR)/phase0/*.md) \
$(wildcard $(SPEC_DIR)/altair/*.md) $(wildcard $(SPEC_DIR)/altair/**/*.md) \
$(wildcard $(SPEC_DIR)/bellatrix/*.md) \
$(wildcard $(SPEC_DIR)/capella/*.md) $(wildcard $(SPEC_DIR)/capella/**/*.md) \
- $(wildcard $(SPEC_DIR)/custody/*.md) \
- $(wildcard $(SPEC_DIR)/das/*.md) \
- $(wildcard $(SPEC_DIR)/sharding/*.md) \
$(wildcard $(SPEC_DIR)/deneb/*.md) $(wildcard $(SPEC_DIR)/deneb/**/*.md) \
+ $(wildcard $(SPEC_DIR)/_features/custody/*.md) \
+ $(wildcard $(SPEC_DIR)/_features/das/*.md) \
+ $(wildcard $(SPEC_DIR)/_features/sharding/*.md) \
$(wildcard $(SSZ_DIR)/*.md)
COV_HTML_OUT=.htmlcov
diff --git a/README.md b/README.md
index da893a53d..49e1c3a4d 100644
--- a/README.md
+++ b/README.md
@@ -26,9 +26,9 @@ Features are researched and developed in parallel, and then consolidated into se
| - | - | - |
| Capella (tentative) |
- Core
- [Beacon chain changes](specs/capella/beacon-chain.md)
- [Capella fork](specs/capella/fork.md)
- Additions
- [Light client sync protocol changes](specs/capella/light-client/sync-protocol.md) ([fork](specs/capella/light-client/fork.md), [full node](specs/capella/light-client/full-node.md), [networking](specs/capella/light-client/p2p-interface.md))
- [Validator additions](specs/capella/validator.md)
- [P2P networking](specs/capella/p2p-interface.md)
|
| Deneb (tentative) | - Core
- [Beacon Chain changes](specs/deneb/beacon-chain.md)
- [Deneb fork](specs/deneb/fork.md)
- [Polynomial commitments](specs/deneb/polynomial-commitments.md)
- [Fork choice changes](specs/deneb/fork-choice.md)
- Additions
- [Light client sync protocol changes](specs/deneb/light-client/sync-protocol.md) ([fork](specs/deneb/light-client/fork.md), [full node](specs/deneb/light-client/full-node.md), [networking](specs/deneb/light-client/p2p-interface.md))
- [Honest validator guide changes](specs/deneb/validator.md)
- [P2P networking](specs/deneb/p2p-interface.md)
|
-| Sharding (outdated) | - Core
- [Beacon Chain changes](specs/sharding/beacon-chain.md)
- Additions
- [P2P networking](specs/sharding/p2p-interface.md)
|
-| Custody Game (outdated) | - Core
- [Beacon Chain changes](specs/custody_game/beacon-chain.md)
- Additions
- [Honest validator guide changes](specs/custody_game/validator.md)
| Dependent on sharding |
-| Data Availability Sampling (outdated) | - Core
- [Core types and functions](specs/das/das-core.md)
- [Fork choice changes](specs/das/fork-choice.md)
- Additions
- [P2P Networking](specs/das/p2p-interface.md)
- [Sampling process](specs/das/sampling.md)
| - Dependent on sharding
- [Technical explainer](https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/B1YJPGkpD)
|
+| Sharding (outdated) | - Core
- [Beacon Chain changes](specs/_features/sharding/beacon-chain.md)
- Additions
- [P2P networking](specs/_features/sharding/p2p-interface.md)
|
+| Custody Game (outdated) | - Core
- [Beacon Chain changes](specs/_features/custody_game/beacon-chain.md)
- Additions
- [Honest validator guide changes](specs/_features/custody_game/validator.md)
| Dependent on sharding |
+| Data Availability Sampling (outdated) | - Core
- [Core types and functions](specs/_features/das/das-core.md)
- [Fork choice changes](specs/_features/das/fork-choice.md)
- Additions
- [P2P Networking](specs/_features/das/p2p-interface.md)
- [Sampling process](specs/_features/das/sampling.md)
| - Dependent on sharding
- [Technical explainer](https://hackmd.io/@HWeNw8hNRimMm2m2GH56Cw/B1YJPGkpD)
|
### Accompanying documents can be found in [specs](specs) and include:
diff --git a/specs/custody_game/beacon-chain.md b/specs/_features/custody_game/beacon-chain.md
similarity index 100%
rename from specs/custody_game/beacon-chain.md
rename to specs/_features/custody_game/beacon-chain.md
diff --git a/specs/custody_game/validator.md b/specs/_features/custody_game/validator.md
similarity index 96%
rename from specs/custody_game/validator.md
rename to specs/_features/custody_game/validator.md
index 05ceb854d..ed47eb0ac 100644
--- a/specs/custody_game/validator.md
+++ b/specs/_features/custody_game/validator.md
@@ -36,11 +36,11 @@ docs are requisite for this document and used throughout. Please see the Custody
## Becoming a validator
-Becoming a validator in Custody Game is unchanged from Phase 0. See the [Phase 0 validator guide](../phase0/validator.md#becoming-a-validator) for details.
+Becoming a validator in Custody Game is unchanged from Phase 0. See the [Phase 0 validator guide](../../phase0/validator.md#becoming-a-validator) for details.
## Beacon chain validator assignments
-Beacon chain validator assignments to beacon committees and beacon block proposal are unchanged from Phase 0. See the [Phase 0 validator guide](../phase0/validator.md#validator-assignments) for details.
+Beacon chain validator assignments to beacon committees and beacon block proposal are unchanged from Phase 0. See the [Phase 0 validator guide](../../phase0/validator.md#validator-assignments) for details.
##### Custody slashings
diff --git a/specs/das/das-core.md b/specs/_features/das/das-core.md
similarity index 100%
rename from specs/das/das-core.md
rename to specs/_features/das/das-core.md
diff --git a/specs/das/fork-choice.md b/specs/_features/das/fork-choice.md
similarity index 100%
rename from specs/das/fork-choice.md
rename to specs/_features/das/fork-choice.md
diff --git a/specs/das/p2p-interface.md b/specs/_features/das/p2p-interface.md
similarity index 98%
rename from specs/das/p2p-interface.md
rename to specs/_features/das/p2p-interface.md
index a60bd9c85..b166c9c3e 100644
--- a/specs/das/p2p-interface.md
+++ b/specs/_features/das/p2p-interface.md
@@ -143,7 +143,7 @@ If the node does not already have connected peers on the topic it needs to sampl
### Topics and messages
-Following the same scheme as the [Phase0 gossip topics](../phase0/p2p-interface.md#topics-and-messages), names and payload types are:
+Following the same scheme as the [Phase0 gossip topics](../../phase0/p2p-interface.md#topics-and-messages), names and payload types are:
| Name | Message Type |
|----------------------------------|---------------------------|
| `das_sample_{subnet_index}` | `DASSample` |
@@ -192,7 +192,7 @@ This is to serve other peers that may have missed it.
To pull samples from nodes, in case of network instability when samples are unavailable, a new query method is added to the Req-Resp domain.
-This builds on top of the protocol identification and encoding spec which was introduced in [the Phase0 network spec](../phase0/p2p-interface.md).
+This builds on top of the protocol identification and encoding spec which was introduced in [the Phase0 network spec](../../phase0/p2p-interface.md).
Note that DAS networking uses a different protocol prefix: `/eth2/das/req`
diff --git a/specs/das/sampling.md b/specs/_features/das/sampling.md
similarity index 100%
rename from specs/das/sampling.md
rename to specs/_features/das/sampling.md
diff --git a/specs/sharding/beacon-chain.md b/specs/_features/sharding/beacon-chain.md
similarity index 100%
rename from specs/sharding/beacon-chain.md
rename to specs/_features/sharding/beacon-chain.md
diff --git a/specs/sharding/p2p-interface.md b/specs/_features/sharding/p2p-interface.md
similarity index 97%
rename from specs/sharding/p2p-interface.md
rename to specs/_features/sharding/p2p-interface.md
index 3b627a339..c29146fe9 100644
--- a/specs/sharding/p2p-interface.md
+++ b/specs/_features/sharding/p2p-interface.md
@@ -39,7 +39,7 @@ The adjustments and additions for Shards are outlined in this document.
### Topics and messages
-Following the same scheme as the [Phase0 gossip topics](../phase0/p2p-interface.md#topics-and-messages), names and payload types are:
+Following the same scheme as the [Phase0 gossip topics](../../phase0/p2p-interface.md#topics-and-messages), names and payload types are:
| Name | Message Type |
|---------------------------------|--------------------------|
diff --git a/specs/sharding/polynomial-commitments.md b/specs/_features/sharding/polynomial-commitments.md
similarity index 100%
rename from specs/sharding/polynomial-commitments.md
rename to specs/_features/sharding/polynomial-commitments.md
diff --git a/specs/sharding/validator.md b/specs/_features/sharding/validator.md
similarity index 99%
rename from specs/sharding/validator.md
rename to specs/_features/sharding/validator.md
index 38914095f..466c4df66 100644
--- a/specs/sharding/validator.md
+++ b/specs/_features/sharding/validator.md
@@ -33,7 +33,7 @@ This document represents the changes to be made in the code of an "honest valida
## Prerequisites
-This document is an extension of the [Bellatrix -- Honest Validator](../bellatrix/validator.md) guide.
+This document is an extension of the [Bellatrix -- Honest Validator](../../bellatrix/validator.md) guide.
All behaviors and definitions defined in this document, and documents it extends, carry over unless explicitly noted or overridden.
All terminology, constants, functions, and protocol mechanics defined in the updated Beacon Chain doc of [Sharding](./beacon-chain.md) are requisite for this document and used throughout.